如果学计算机不是为了开心,那还有什么意义。结束了vb的全部课程,闲来无事也可以做一做小游戏来放松一下,下面就是我利用空闲时间制作的一款贪吃蛇小游戏,我将会还原整个制作过程,再一次体会小蛇所体现出来的计算机思想
效果视频,没有录屏软件,只能手机拍了
最开始我们要完成以下基础工作:
1使用绘画line画蛇
2绘画史一节一节的画出来
3确定每一节🐍身的位置
4切丁每一节蛇身的长度
我们利用line函数来画出蛇来,大家都知道line可以画矩形,所所以一届一届的蛇身我们就用line来画就好了,这时候,我们还需要自动重绘,因为我们的蛇是实时运动的
这里需要用到自定义类型,基本步骤就是线定义类型,然后生命类型属性,然后在将自己定义的类型初始化即可
我们定义蛇的蛇身为我们的定义类型
Private Type node ' 每一节蛇身
D As Integer '37左38上39右40下,这个是蛇身里面的
X As Single 'LEFT
Y As Single 'top
co As Color '蛇身颜色
End Type
其次还需要提前定义好我们的预设🐍身长度,以数组的形式声明我们的蛇,因为我们的设施一条运动的;蛇的运动就会产生方向问题,我们要设置一个方向变量
Dim W As Integer '每一节蛇身宽度
Dim sno() As node '声明一条蛇,是动态数组
Dim Currentdirect As Integer '这个是全局变量的方向,代表蛇运动的当前方向
Private WithEvents timer1 As Timer
在我们初始化我们类型之前还有一点我们需要考虑的事情
我们要定义一些其他类型,让他们来代替我们自定义类型中各个属性的具体参数(直接声明变量不定义类型也可,实测有效)
'定义颜色类型
Private Type Color
R As Integer
'红色
G As Integer
'绿色
B As Integer
'蓝色
End Type
然后我们来初始化我们的类型
'初始化一条蛇的参数
Function init()
'初始化蛇身颜色
Randomize
Dim R%, G%, B%
R = Int(Rnd * 256)
G = Int(Rnd * 256)
B = Int(Rnd * 256)
然后开始画一条蛇,用line函数即可
'画一条蛇
Function drawsnake()
Cls
Dim i As Long
For i = 0 To UBound(sno) Step 1
Line (sno(i).X, sno(i).Y)-(sno(i).X + W, sno(i).Y + W), RGB(sno(i).co.R, sno(i).co.G, sno(i).co.B), BF
Next i
End Function
这里要注意,对蛇的每一个重要变量都要进行注释,以便我们以后阅读代码;自定义类型蛇身node是有方向的,主要有头部获得,我们暂且先不讨论蛇身的变长方式;在这里我将蛇身的数据和绘画分开因为后面我们要跟小蛇是否吃到食物来重新绘画,所以我们把画蛇的部分携程自定义函数的方式跟蛇身的数据分开方便以后我们调用;这里运用的重要思想就是用自定义函数来讲各个功能模块隔开写,到此我们基本完成了这条蛇的基本工作——初始化我们的小蛇蛇🐍。
根据以前我们设计小游戏的经验,我们一般先将游戏预期要实现的功能计划出来,然后分布来完成各个功能,最后在组装起来,当然这也要遵循一定的逻辑,即一定要先穿袜子在穿鞋,不能反过来,对应在我们这款小游戏中的思想,在完成初始化后我们就要让小蛇动起来起来