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

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函数覆制过去就好了,不是很方便吗?
jQuery实现Ajax提交form表单的简单方法 字符串String与枚举Enum之间的转换[C#] Javascript统计DOM元素里文字的行数 C#从Web网站下载文件 C#得到区域名称列表 应用中如何添加系统的环境变量(向WINDIR等)? 关于在ORACLE 8.16中解决显示图片问题,,兄弟们,来帮帮忙! 关于"透明窗体"的研究和再讨论 在Win2003系统下Asp调用组件出问题 代码求解(在线) Excel实现超链接 象QQ那样的系统,数据库是怎弄的,能是普通的SQL或ORACLE的吗,存储过程是怎么设计的呢. 初学,求好网站-? 用vs.net2003搞开发,是安装win2000好呢,还是安装winXP好,请高人指教。 低温烘焙的好处? 血字旁加一个 半 怎么读 最近有价值的新闻有哪些,请用一句话写一条. 请问如何在铁镀银中把铁和银分离出来 帮忙归纳一下类似于take off /put on 法师的寒冷效果和冰冷效果是什么?FS第2层天赋树有 低温症有哪些好处 低温焊接有什么好处 食品低温保藏的主要作用是低温杀菌吗 中非民兵与前叛军爆发冲突 造成近40英媒:养老金制度需考虑气候变化 否则格陵兰岛取消铀矿开采禁令恒天然调查:无肉毒杆菌风险 应改进生省委常委分赴教育实践活动联系点参加指《大清盐商》:国产剧一旦认真拍起来 江西80多位农民坐飞机到海南领288小城居民也能逛大商超喝上星巴克两大新盘周末首开送红利民办小学新生免费体验课报名火爆 八所天庭大明星明星天王恶灵国度逆天噬魂鬼刀庆安会馆旅游王若飞故居旅游杨二车娜姆博物馆旅游晴耕雨读旅游皮影戏馆旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘