贪吃蛇VB编程详解2贪吃蛇VB编程详解2
VB编程有点象搭积木,一个游戏可以由几个小程序组成,然后通过特定的方式联系在一起。
玩贪吃蛇游戏时,注意到游戏主要由以下几部分做法组成:
1(随机出现的食物的做法
食物的颜色是随机出现,食物为一个小圆,外框线是黑色的
2(键盘控制按钮控制蛇运行的做法
3(食物吃掉,蛇身加长的做法
4(蛇死时的闪动的做法
5(蛇撞墙或撞自身后游戏结束的做法
蛇头为圆形,有外框线,蛇身为方形,颜色是随机的,有外框线
我找到了一个贪吃蛇的VB代码,仔细的把这个贪吃蛇代码根据以上几部分分解开来,就象把一个搭好...
贪吃蛇VB编程详解2
VB编程有点象搭积木,一个游戏可以由几个小程序组成,然后通过特定的方式联系在一起。
玩贪吃蛇游戏时,注意到游戏主要由以下几部分做法组成:
1(随机出现的食物的做法
食物的颜色是随机出现,食物为一个小圆,外框线是黑色的
2(键盘控制按钮控制蛇运行的做法
3(食物吃掉,蛇身加长的做法
4(蛇死时的闪动的做法
5(蛇撞墙或撞自身后游戏结束的做法
蛇头为圆形,有外框线,蛇身为方形,颜色是随机的,有外框线
我找到了一个贪吃蛇的VB代码,仔细的把这个贪吃蛇代码根据以上几部分分解开来,就象把一个搭好的积木城堡又重新拆解成一块块的积木。
贪吃蛇VB代码详解——键盘控制蛇运行的做法
课程作业
内容
2(1 在VB应用程序里
好小游戏(贪吃蛇向前、向左向右和向后爬行),共有控件如下:
Form1 shape Timer 控件名称
1 1 数量 共4个
2(2控件的属性
Form1:默认值,宽度和高度尺寸适中
Shape控件组,表示蛇头和蛇身,蛇头为圆形,蛇身为方形 控件组 控件属性 Shape1(0) FillColor在调色版中选一种颜色 表示蛇头 BorderStyle选择1-Solid
Shape选择3-circle
FillStyle选择0-Solid
Shape1(1) FillColor在调色版中选一种颜色 表示蛇身 BorderStyle选择1-Solid
Shape选择0-Rectangle
FillStyle选为0-Solid
Shape1(2) FillColor在调色版中选一种颜色 表示蛇身 BorderStyle选择1-Solid
shape设为0-Rectangle
FillStyle选为0-Solid
Shape1(3) FillColor在调色版中选一种颜色 表示蛇身 BorderStyle选择1-Solid
Shape选择0-Rectangle
FillStyle选为0-Solid
Timer:默认值
设计界面如下图所示
2(3如何给小游戏添加菜单栏
选择VB的菜单栏中的工具菜单,在工具菜单中选择菜单编辑器一项,给贪吃蛇——键盘控制按钮控制蛇爬行小游戏再添加一个菜
单栏,打开游戏菜单后,里面有两个选顶,一个是开始,一个是结束 标
游戏(主菜单) 开始 结束
Game Start Exit 名称(代码)
2(4游戏代码说明,
其中的Runstep为蛇身方格的宽度,在下图说明中为10,但在实际游戏中为400个点,以下是代表四个方向(游戏代码)的四个选项: Case 0 Shape1(0).Left = Shape1(0).Left - Runstep Left方向减 往左注意蛇行走的走的方向为横向
Shape1(0).Left 蛇
-Runstep Case1 Shape1(0).Top = Shape1(0).Top - Runstep Top方向减 往下注意蛇行走的走的方向为纵向
Shape1(0).Top 蛇
-Runstep Case 2 Shape1(0).Left = Shape1(0).Left + Runstep Left方向加 往右注意蛇行走的走的方向为横向
Shape1(0).Left 蛇
+Runstep
Case 3 Shape1(0).Top = Shape1(0).Top + Runstep Top方向加 往上注意蛇行走的走的方向为纵向
Shape1(0).Top 蛇
+Runstep
另外还有就是用键盘的四个方向键控制蛇往前后左右的行走,我一开始也搞不清楚为什么用Case 37 ,Case 38,Case 39,Case 40这四个代表键盘的KeyCode号码能代表四个方向,好在我查到了两个贪吃蛇代码,全是37、38、39、40这个个KeyCode号码,我就觉得很奇怪,结果代表键盘的四个方向的代码真的是用37—38—39—40来表示的,因为我从贪吃蛇是单独分离出来的贪吃蛇往前后左右爬行的小游戏运行后可以用键盘控制的
请看游戏代码吧:
3(游戏代码
一个是窗体(Form1)代码,还有一个是模块代码,本来想把他们二合一成为窗体代码的,可是是从原来的游戏中分离出来的,所以还有一个为模块(Module1)的代码
Form1代码:
Const Runstep = 400
‘定义常量,即蛇身为一个shape的宽度
‘变量在模块中定义,窗体中没有定义
Private Sub exit_Click() Timer1.Interval = 0
End Sub
Private Sub form_load() ‘载入窗体,初始化蛇身为一个数组shape1(i) Dim i As Integer
For i = 0 To 3 Step 1 snake_init(i).x = Shape1(i).Left
snake_init(i).y = Shape1(i).Top
Next i
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, shift As Integer)
Select Case KeyCode
Case 37
‘蛇不可以退着走,但可以拐弯
If Runway <> 2 Then
Runway = 0
End If
Case 38
If Runway <> 3 Then
Runway = 1
End If
Case 39
If Runway <> 0 Then
Runway = 2
End If
Case 40
If Runway <> 1 Then
Runway = 3
End If
End Select
End Sub
Private Sub start_Click() Timer1.Interval = 1000 Call init_game
End Sub
Private Sub Timer1_Timer() snake_point.x = Shape1(0).Left snake_point.y = Shape1(0).Top
Select Case Runway
Case 0
Shape1(0).Left = Shape1(0).Left - Runstep Call move_snake
Case 1
Shape1(0).Top = Shape1(0).Top - Runstep Call move_snake
Case 2
Shape1(0).Left = Shape1(0).Left + Runstep Call move_snake
Case 3
Shape1(0).Top = Shape1(0).Top + Runstep Call move_snake
End Select
End Sub
注解:在Form1中对Form1 load即载入窗体后,对蛇身做了一个定
位,再把游戏菜单中的开始和结束做了一个说明,即开始
Timer1.Interval =1000,结束Timer1.Interval = 0,然后再说明Timer1
的用法,然后是用键盘控制蛇爬行的用法都做了说明,但是在键盘控制蛇爬行时对Runway变量没有做定义和说明,还有定义蛇的四个行走方向对Call move_snake(函数)也没有做说明,在开始游戏是有一个重要的代码Call init_game也会在模块中说明,(开始我做游戏代码是就没有Call init_game这一项代码,也没有说明,结果程序是可以运行的,而且蛇也会向四个方向爬行的,但是运行的路线是不一样的)在Form1没有说明的这几个方面会在模块中一一提到,并解释清楚。
下面是模块Module1的代码:(先在工程菜单中添加一个模块) ‘定义变量
Public Runway As Integer ‘定义蛇身
Public Type str_snake_point x As Integer
y As Integer
End Type
‘蛇身初始化,定义蛇身
Public snake_init(0 To 3) As str_snake_point
Public snake_point As str_snake_point
Public Sub init_game()
Dim i As Integer
For i = 0 To 3 Step 1
Form1.Shape1(i).Left = snake_init(i).x Form1.Shape1(i).Top = snake_init(i).y Next i
Runway = 0
End Sub
Public Sub move_snake()
Dim tempx As Integer
Dim tempy As Integer
Dim i As Integer
For i = 1 To 3 Step 1
'把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
Next i
End Sub
4(编写完代码,运行程序,结果如下:
5(
通过对VB这一课程的自学,了解并掌握了其基本操作。以
课程设计的形式加深了对VB这一计算机语言的认知。
本文档为【贪吃蛇VB编程详解2】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。