说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB游戏写作技巧(1)秀图篇

HTML文档下载 WORD文档下载 PDF文档下载
VB游戏写作技巧(1)秀图篇
一开始,我想先从游戏的图形先讲起好了,毕竟游戏最重要的就是画面,一个没有漂亮图形的游戏,我连碰都不想去碰。那该怎么处理游戏的图形呢?VB提供了一个非常好用的控制项--PictureBox,有了这个控制项我们才能轻松的在程式中秀出图形,现在就来看看PictureBox有那些特性可以让我们在游戏中使用。

Picture 属性:只要将这个属性填入正常的图形档名,VB就会自动帮我们载入图形档。

Visible 属性:这个属性可以让图形消失或让图形出现在画面上。
用法:Form1.Picture1.Visible = False '消失
Form1.Picture1.Visible = True '出现

Left 属性:表示图形的位置的X座标。
Top 属性:表示图形的位置的Y座标。
用法:改变这两个属性就可以改变图形的位置。

ScaleMode 属性:设定PictureBox所使用的座标单位,一般都设为"3-像素"

知道了PictureBox的特性後,要怎么样把它应用到游戏中呢?举个例子好了,我现在要做一个打砖块的游戏,需要用到那些图片呢?砖块、球、击球的板子,一共有三张图,所以我们就使用三个PictureBox,将图片载入到PictureBox里面,如下面所示:

Picture1 砖块的图片
Picture2 球的图片
Picture3 板子的图片

接著我就可以写,当我按下方向键的右键时,Picture3的left属性+1,按下左键则-1,这样一来不就可以控制板子的左右移动了吗?球也是一样,只要每隔一段时间更改一次Picture2的left和top 属性,就可以做出球移动的效果了。

或许有人会觉得奇怪,一张图就要用到一个PictureBox,小游戏的图不多还没关系,如果是RPG的话不就要动用到几千个甚至几万个PictureBox?岂不是麻烦死了?所以如果图片很多的时候,我通常都是把图全部都放在同一个图形档里面,这样就只要用到一个PictureBox了,要用图片时从里面把它抓出来就好了,不过要怎么抓呢?我建议使用函数BitBlt()来做图形的搬移。

使用BitBlt函数前要先宣告:

Declare Sub BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long)

hDestDC 目的地的DC
x 目的地的座标x
y 目的地的座标y
nWidth 来源图片的宽度
nHight 来源图片的高度
hSrcDC 来源图片的DC
xsrc 来源图片的座标x
ysrc 来源图片的座标y
dwrop 运算方法:&HCC0020 PUT
&H8800C6 AND
&HEE0086 OR
&H660046 XOR

现在有两个PictureBox
Picture1 AutoRedRaw 属性设为Ture
ScaleMode 属性设为"3-像素"
Picture2 AutoRedRaw 属性设为Ture
ScaleMode 属性设为"3-像素"

若想将Picture2里(10,10)-(100,100)区域内的图形拷贝到Picture1的(0,0)
可以这样写:

BitBlt Picture1.hdc,0,0,90,90,Picture2.hdc,10,10,&HCC0020

这样子平常写游戏时就只要设两个PictureBox,一个专门用来显示,另一个则用来放图形资料,需要时再用BitBlt函数覆制过去就好了,不是很方便吗?
继BAT之后 第四大巨头是谁 如果传统IT部门真的消亡,你该何去何从? 闪存突袭,混合储存是否已步入黄昏 Cloudera发布Hadoop开源组件Sentry:提供细粒度基于角色的安全控制 我从其他Shell脚本中学到了什么? 10个调试和排错的小建议 机器学习的时代来临,人类应该做点什么? 云端测试破1500万 Testin已为开发者省2亿 智能腕表inWatch:已发售近3600台 Bingo!微软证实Windows 8.1将捆绑安装Skype IBM宣布收购以色列网络安全公司Trusteer 约10亿美元 如何才能运作好一个开源项目? 为什么JavaScript有能力成为未来企业级编程语言? Red Hat CEO:拥抱开源 拥抱克隆 小米手机-HAXLR8on硬件黑客马拉松 开团了! 移动周报:雷军做红米的N个理由 Pangea Software CEO:08年App Store游戏降价大战的真相 揭秘MongoDB最新Java驱动:更好的JVM支持,指日可期的异步 不仅只有IE Mozilla将于发布Win8平台Metro版Firefox 360搜索发布新产品“我的搜索” 引入网民评价和网站名片功能 AppScale:Google App Engine的开源实现 近期十大优秀jQuery插件推荐 通过语音识别来编程 速度远超键盘 BrowserStack:多系统跨浏览器兼容性测试工具API发布 更加开放?Path向13家应用开发商开放API 重金力邀开发者 联想智能桌面应用开发大赛开幕 SDCC 2013大会讲师名单议题出炉 8月20日五折票价最后一天 程序员困境:底层编码能力正逐步丧失 寓教于乐 给代码审查者的几点建议 裁员4千、总裁员人数超过7.5万,难掩思科锋芒 物联网离普罗大众还有多远? 紧急求救 想知道各位WINDOWS下用什么SNIFFER? 对于网络上的第三方控件的看法 简单问题?JTable中的数据如何居中对齐,有没有直接的函数(不用自定义CellRenderer) 有关析构函数 请问一个小问题 关于ADO中ltBatchOptimisticr的FilterGroup的问题 两个星要到多少分才能升到三个星呀 请问有谁知道北京的成人教育大致的情况如何? 是VC编译器不符合ANSI C++,还是?? 我现在在写个程序!是关于证券方面的!可是如下的一个小问题如何解决?? ★★如何让excel的某行的值等于另一行的值乘以一个固定值(急问,在线等待)★★ @@@开学了,散分! 怎样构建一个LDAP服务器和怎样使用 用VFW采集时进行压缩的问题。求解 C# 在DW MX中如何进行层定位? 回复:機會不要錯過! 華強科技有限公司幫你成就軟件工程師的夢想! How to access SMB/CIFS from Sun workstation? 谁来拿分啊。我有一个问题自己解决了,但没有给分的对象。 问一个message Bean的问题,up有分 [EJB]HelloWorldBean正确编译配置和执行,但"HelloWorld"却不见了 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 如何让主界面变成三维的那种 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 用什么组件能得到网站上的末知大小的文件? 问一个简单的问题 还是有问题关于获得选中安钮的当前行,请进>> 请教简单问题,如何将菜单的一个选项隐藏。就是类似cb的将Visible=false的做法!! 连接ACCESS数据库的问题? 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 如何提取一个EXE文件的特征码??要高分者和高手进!!!!来者有分! j2ee配置问题,大家帮我看看,错误出在哪里?谢了! 如何在注册表中修改使得浏览的网页可以即时通过工具栏的“编辑”调用DW修改? "聊聊"网站是怎样建的?用拉什么技术,可以即使聊天? 类型转换,非常奇怪的问题。高手进来 搞纯C++的大虾请进 关于MDI Child窗口的一个问题? DOS6.22的下载及6.0源码 sql语句问题:怎样从表中选出字段值包含在一个变量字串的那条记录。100分!在线等待! 关于那个mesh绕自己中心(注意是自己中心)旋转的问题我还没有解决 抛砖引玉: 证券行业软件之数据库存储。 如果下面这个问题谁能解决,我跪下来拜他三下:在WIN2000里,通过更改注册表,以达到更改IE的页面设置(一定要能更改横向:orientation和 过程的问题!!! 一个非常难的问题---挑战这里所有的高手!(解决了,分数我可以追加到200) 用vc7时候怎么导入一张图片作资源?还有怎么添加popup菜单 有关取得一个Tree Control的一个Notify的问题! 关于delphi中用ADO连接数据库的问题!!(欢迎up)在线等待! 急问各位高手,在CB里怎么设置数据库的相对路径。 有一份北京的工作,需要懂php+mySql+linux,有兴趣的请和我联系 请问能否把报表预览控件中的“CLOSE”安钮改成中文的”关闭“安钮? 甲乙两个人同时从A、B两地相向而行,5分钟后两人相遇,相遇后两人继续前行,又经过15/4分钟,甲已超过B地20米,而乙离A地还有80米,A、B两地相距( )米.希望不要用二元一次方程等复杂方式解答. 纸对折30次有多高 观察植物的作文9000字 如何改进英语教学 一张纸对折30次,真的能高过世界最高峰么?随便什么纸,对折30次真的能超过珠穆郎玛峰吗? 抄6篇600字左右的作文大概需要多少时间? 妈妈呀,妈妈 这是一篇阅读短文!认真阅读下面短文,完成下面的练习.妈妈呀,妈妈 “哎呀,我的小祖宗,别动别动,让我来做.”这话简直成了妈妈的口头禅了.我放学一进家,她便让我做作业,我干 如何珍惜粮食简短些 拟一副对联,教师节 这种题目什么的最讨厌了,特别是阅读短文完成练习. 什么是数字PID位置型控制算法和增量型控制算法? 下面关于印度地势特征的描述,正确的是 A.中部高,南北低 B北部山地 中部平原 南部高原我急用 一小时内 速度我们老实说选A 但又貌似不对 A不对吗 读短文,完成练习的题目,公鸡和狐狸狐狸见公鸡站在树上,它像想吃鸡,但自己又不会爬树.于是它说:“啊,公鸡,我告诉你一个好消息!”“什么好消息!”公鸡问.“哦,现在所有的动物都成为好 pid控制的算法 《渔家傲 秋思》中戍边将士对家乡的思念的句子 帮我起一个练舞蹈作文的题目 怎样用PID算法控制温度? 地理中河流左右岸怎么判断南北半球方法一样吗 请问小学英语适合利用英文歌曲进行教学吗? 甲、乙两数相加,结果为357.5,如果甲数的小数点向左移一位,就和乙数一样,那么乙数是( ). 地球与太阳相隔多远? ph试纸哪有卖 100吨米等于多少千牛米?寻求达人 废旧纽扣电池怎样处理才好? 成都ph试纸哪里有卖? 汽车发动机功率和牛米的关系汽车发动机的大问题,功率和牛米的关系,都说看发动机的性能看功率和牛米,发动机的综合性能是功率越大牛米也越大,但如果 100KW-200NM和120KW-180NM,那个发动机更好 下列对联最适合用于祝贺教师60周岁寿辰的是(  ).A.为学有宗花甲成庆,诲人无倦恩重及门B.花甲有二犹在拼搏,赢得称颂留传万年  C.碧桃献岁宜家受福,古稀逢春获寿延年D.执掌教 哪里可以买到PH试纸,价钱如何? 《那一刻,我迈上了新台阶》作文的开头不要是这个:人生漫漫,每分每秒,我们都在台阶上攀登.每登上一层,我们就站得更高;每登上一层,我们就看得更远——台阶总是在我们的脚下延伸. 废旧的纽扣电池不能随意丢弃,应( )进行回收. 茄子内涵是什么意思 建筑给排水图纸上出现一个箭头,箭头上标注1%, 旧电池有什么危害?告诉一下! 根据提示补写名句.1.我寄愁心与明月,( ).2.( ),天涯共此时.3.疏影横斜水清浅,( ).4.纸上得来终觉浅,( ) .5.勿以恶小而为之,( ).6.千年扬州古运河,堪称一条诗歌之河,你是否在课内外 将一张厚度为0.05毫米的纸对折30次以后,猜一猜它能有多高?我是初中生,这是家作啊,快.要理由.后面的答案要带单位. 在发展社会主义市场经济中,政府如何解决社会就业问题? 等个茄子是什么意思? 一张纸对折30次有多高 手表纽扣电池可以用多久?我在2012年过年时买了一个卡西欧的手表,200多块,冒牌的,我想知道它有没有可能是自动的?如果不是,里边的电池能用多久.用了一年半,该不该换了? 一个6位数,各个数位上的数字之和是17,则这个数是多少,最小是多少 一张O.3毫米的纸,对折30次,那它有多高? 手表里的纽扣电池,有50块钱那么贵吗?我的手表是比较好的那种,不过是别人送的,牌子是CYMA的我前几年 最贵的也就20,没想到这次换的居然是50,不知道是否真的有那么贵的纽扣电池 一个三位数,三个数位上的数的和是17,十位上的数比百位上的数打5,个位上的数是百位数发2倍,求这个三位数. 用0.1毫米的纸折叠30次有多少米 手表里的纽扣电池是锂电池吗 初中地理教学视频我现在初三了,可是地理总是考的不好,我非常苦恼,我不知道该怎么办,请问我应该怎么学呢? 印度的山地印度北部的山地是__东亚五国的岛国是_,它是由_,_,_,_等四个大岛和数千个小岛组成的,其中面积最大的是__,纬度最高的是__岛.按地理方向,亚洲分为_,_,_,_,_,_,其中东亚五个国家有_,_,_, swatch手表的纽扣电池问题手表用了2年了 今天突然没电了 拿着原装的纽扣电池去买 到处没有卖的 最后没办法 找了修表的师傅拿了两个小的纽扣电池对到一起安进去了(原来的电池是一个的 涉及的范围是否比较广呢? 印度地形分文三部分,北部为高大的是什么山? 冷榨和压榨哪个好 如何提高初中地理教学成绩 甲数的小数点向左移动两位就和乙数相等,甲数比乙数多47.52,甲数是多少?如题 冷冻脱腊是冷榨吗 甲乙两个人同时从A、B两地相向而行,5分钟后两人相遇,相遇后两人继续前行,又经过4分之15分钟,甲已超过B地20米,而乙离A地还有80米,A、B两地相距( )米. 甲数的小数点向左移两位后和乙数相等,甲数和乙数比,()大,大()倍 5篇600字作文多长时间抄完 查成语什么日经济 范仲淹的《渔家傲》中,表现壮志未酬、怀念故乡心情的句子是( ),( ) 抄一篇500字的作文大概要多久?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘