贪吃蛇VB编程详解Word格式文档下载.docx
《贪吃蛇VB编程详解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《贪吃蛇VB编程详解Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
控件名称
Form1
shape
Timer
数量
1
共4个
2.2控件的属性
Form1:
默认值,宽度和高度尺寸适中
Shape控件组,表示蛇头和蛇身,蛇头为圆形,蛇身为方形
控件组
控件属性
Shape1(0)
表示蛇头
FillColor在调色版中选一种颜色
BorderStyle选择1-Solid
Shape选择3-circle
FillStyle选择0-Solid
Shape1
(1)
表示蛇身
Shape选择0-Rectangle
FillStyle选为0-Solid
Shape1
(2)
shape设为0-Rectangle
Shape1(3)
Timer:
默认值
设计界面如下图所示
2.3如何给小游戏添加菜单栏
选择VB的菜单栏中的工具菜单,在工具菜单中选择菜单编辑器一项,给贪吃蛇——键盘控制按钮控制蛇爬行小游戏再添加一个菜单栏,打开游戏菜单后,里面有两个选顶,一个是开始,一个是结束
标题
游戏(主菜单)
开始
结束
名称(代码)
Game
Start
Exit
2.4游戏代码说明,
其中的Runstep为蛇身方格的宽度,在下图说明中为10,但在实际游戏中为400个点,以下是代表四个方向(游戏代码)的四个选项:
Case0
Shape1(0).Left=Shape1(0).Left-Runstep
Left方向减
往左走的蛇
注意蛇行走的方向为横向
Shape1(0).Left
-Runstep
Case1
Shape1(0).Top=Shape1(0).Top-Runstep
Top方向减
往下走的蛇
注意蛇行走的方向为纵向
Shape1(0).Top
Case2
Shape1(0).Left=Shape1(0).Left+Runstep
Left方向加
往右走的蛇
+Runstep
Case3
Shape1(0).Top=Shape1(0).Top+Runstep
Top方向加
往上走的蛇
另外还有就是用键盘的四个方向键控制蛇往前后左右的行走,我一开始也搞不清楚为什么用Case37,Case38,Case39,Case40这四个代表键盘的KeyCode号码能代表四个方向,好在我查到了两个贪吃蛇代码,全是37、38、39、40这个个KeyCode号码,我就觉得很奇怪,结果代表键盘的四个方向的代码真的是用37—38—39—40来表示的,因为我从贪吃蛇是单独分离出来的贪吃蛇往前后左右爬行的小游戏运行后可以用键盘控制的
请看游戏代码吧:
3.游戏代码
一个是窗体(Form1)代码,还有一个是模块代码,本来想把他们二合一成为窗体代码的,可是是从原来的游戏中分离出来的,所以还有一个为模块(Module1)的代码
Form1代码:
ConstRunstep=400
‘定义常量,即蛇身为一个shape的宽度
‘变量在模块中定义,窗体中没有定义
PrivateSubexit_Click()
Timer1.Interval=0
EndSub
PrivateSubform_load()
‘载入窗体,初始化蛇身为一个数组shape1(i)
DimiAsInteger
Fori=0To3Step1
snake_init(i).x=Shape1(i).Left
snake_init(i).y=Shape1(i).Top
Nexti
PrivateSubForm_KeyDown(KeyCodeAsInteger,shiftAsInteger)
SelectCaseKeyCode
Case37
‘蛇不可以退着走,但可以拐弯
IfRunway<
>
2Then
Runway=0
EndIf
Case38
3Then
Runway=1
Case39
0Then
Runway=2
Case40
1Then
Runway=3
EndSelect
PrivateSubstart_Click()
Timer1.Interval=1000
Callinit_game
PrivateSubTimer1_Timer()
snake_point.x=Shape1(0).Left
snake_point.y=Shape1(0).Top
SelectCaseRunway
Callmove_snake
Case1
注解:
在Form1中对Form1load即载入窗体后,对蛇身做了一个定位,再把游戏菜单中的开始和结束做了一个说明,即开始Timer1.Interval=1000,结束Timer1.Interval=0,然后再说明Timer1的用法,然后是用键盘控制蛇爬行的用法都做了说明,但是在键盘控制蛇爬行时对Runway变量没有做定义和说明,还有定义蛇的四个行走方向对Callmove_snake(函数)也没有做说明,在开始游戏是有一个重要的代码Callinit_game也会在模块中说明,(开始我做游戏代码是就没有Callinit_game这一项代码,也没有说明,结果程序是可以运行的,而且蛇也会向四个方向爬行的,但是运行的路线是不一样的)在Form1没有说明的这几个方面会在模块中一一提到,并解释清楚。
下面是模块Module1的代码:
(先在工程菜单中添加一个模块)
‘定义变量
PublicRunwayAsInteger
‘定义蛇身
PublicTypestr_snake_point
xAsInteger
yAsInteger
EndType
‘蛇身初始化,定义蛇身
Publicsnake_init(0To3)Asstr_snake_point
Publicsnake_pointAsstr_snake_point
PublicSubinit_game()
Form1.Shape1(i).Left=snake_init(i).x
Form1.Shape1(i).Top=snake_init(i).y
PublicSubmove_snake()
DimtempxAsInteger
DimtempyAsInteger
Fori=1To3Step1
'
把X1和X2的值互换,比如X1=4,X2=6
设一个临时变量C,C=X1,把X1的值存在变量C中,
X1=X2,把X2的值给X1,现在X1就是原来的X2的值了
X2=C,再把C的值给x2,现在X2就是原来的X1的值了
tempx=Form1.Shape1(i).Left
tempy=Form1.Shape1(i).Top
Form1.Shape1(i).Left=snake_point.x
Form1.Shape1(i).Top=snake_point.y
snake_point.x=tempx
snake_point.y=tempy
4.编写完代码,运行程序,结果如下:
5.总结
通过对VB这一课程的自学,了解并掌握了其基本操作。
以课程设计的形式加深了对VB这一计算机语言的认知。