贪吃蛇VB编程详解2_第1页
贪吃蛇VB编程详解2_第2页
贪吃蛇VB编程详解2_第3页
贪吃蛇VB编程详解2_第4页
贪吃蛇VB编程详解2_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VB 编程有点象搭积木,一个游戏可以由几个小程序组成,然后通过特定的方式联系在一起。玩贪吃蛇游戏时,注意到游戏主要由以下几部分做法组成:1随机出现的食物的做法食物的颜色是随机出现,食物为一个小圆,外框线是黑色的2键盘控制按钮控制蛇运行的做法3食物吃掉,蛇身加长的做法4蛇死时的闪动的做法5蛇撞墙或撞自身后游戏结束的做法蛇头为圆形,有外框线,蛇身为方形,颜色是随机的,有外框线我找到了一个贪吃蛇的 VB 代码,仔细的把这个贪吃蛇代码根据以上几部分分解开来,就象把一个搭好的积木城堡又重新拆解成一块块的积木。贪吃蛇 VB代码详解键盘控制蛇运行的做法课程作业报告内容21 在 VB应用程序里设计好小游戏(贪

2、吃蛇向前、向左向右和向后爬行),共有控件如下:控件名称数量Form1 1shape 共 4 个Timer12 2 控件的属性Form1:默认值,宽度和高度尺寸适中Shape控件组,表示蛇头和蛇身,蛇头为圆形,蛇身为方形控件组控件属性Shape1(0)FillColor在调色版中选一种颜色表示蛇头BorderStyle 选择 1-SolidShape选择 3-circleFillStyle选择 0-SolidShape1(1)FillColor在调色版中选一种颜色表示蛇身BorderStyle 选择 1-SolidShape选择 0-RectangleFillStyle选为 0-SolidSha

3、pe1(2)FillColor在调色版中选一种颜色表示蛇身BorderStyle 选择 1-Solidshape 设为 0-RectangleFillStyle选为 0-SolidShape1(3)FillColor在调色版中选一种颜色表示蛇身BorderStyle 选择 1-SolidShape选择 0-RectangleFillStyle选为 0-SolidTimer :默认值设计界面如下图所示23 如何给小游戏添加菜单栏选择 VB的菜单栏中的工具菜单, 在工具菜单中选择菜单编辑器一项,给贪吃蛇键盘控制按钮控制蛇爬行小游戏再添加一个菜单栏,打开游戏菜单后,里面有两个选顶,一个是开始,一个是

4、结束标题游戏(主菜单)开始结束名称(代码)GameStartExit24 游戏代码说明,其中的 Runstep 为蛇身方格的宽度,在下图说明中为10,但在实际游戏中为 400 个点,以下是代表四个方向(游戏代码)的四个选项:Case 0Shape1(0).Left=Shape1(0).Left-Left 方向减Runstep往 左注意蛇行走的方走 的向为横向蛇Shape1(0).Left-RunstepCase1Shape1(0).Top=Shape1(0).Top-Top 方向减Runstep往 下注意蛇行走的方走 的向为纵向蛇Shape1(0).Top-RunstepCase 2Shape

5、1(0).Left=Shape1(0).Left+Left 方向加Runstep往右注意蛇行走的方走的向为横向蛇Shape1(0).Left+RunstepCase 3Shape1(0).Top=Shape1(0).Top+Top 方向加Runstep往上注意蛇行走的方走的向为纵向蛇Shape1(0).Top+Runstep另外还有就是用键盘的四个方向键控制蛇往前后左右的行走,我一开始也搞不清楚为什么用Case 37 ,Case 38,Case 39,Case 40这四个代表键盘的 KeyCode号码能代表四个方向, 好在我查到了两个贪吃蛇代码,全是 37、38、39、40 这个个 KeyCo

6、de号码,我就觉得很奇怪,结果代表键盘的四个方向的代码真的是用37383940 来表示的,因为我从贪吃蛇是单独分离出来的贪吃蛇往前后左右爬行的小游戏运行后可以用键盘控制的请看游戏代码吧:3游戏代码一个是窗体( Form1)代码,还有一个是模块代码,本来想把他们二合一成为窗体代码的, 可是是从原来的游戏中分离出来的,所以还有一个为模块( Module1)的代码Form1 代码:Const Runstep = 400定义常量,即蛇身为一个shape 的宽度变量在模块中定义,窗体中没有定义Private Sub exit_Click()Timer1.Interval = 0End SubPrivat

7、e Sub form_load()载入窗体,初始化蛇身为一个数组shape1(i)Dim i As IntegerFor i = 0 To 3 Step 1snake_init(i).x = Shape1(i).Leftsnake_init(i).y = Shape1(i).TopNext iEnd SubPrivateSub Form_KeyDown(KeyCodeAs Integer,shiftAs Integer)Select Case KeyCodeCase 37蛇不可以退着走,但可以拐弯If Runway 2 ThenRunway = 0End IfCase 38If Runway

8、3 ThenRunway = 1End IfCase 39If Runway 0 ThenRunway = 2End IfCase 40If Runway 1 ThenRunway = 3End IfEnd SelectEnd SubPrivate Sub start_Click()Timer1.Interval = 1000Call init_gameEnd SubPrivate Sub Timer1_Timer()snake_point.x = Shape1(0).Leftsnake_point.y = Shape1(0).TopSelect Case RunwayCase 0Shape1

9、(0).Left = Shape1(0).Left - RunstepCall move_snakeCase 1Shape1(0).Top = Shape1(0).Top - RunstepCall move_snakeCase 2Shape1(0).Left = Shape1(0).Left + RunstepCall move_snakeCase 3Shape1(0).Top = Shape1(0).Top + Runstep Call move_snakeEnd SelectEnd Sub注解:在 Form1中对 Form1 load 即载入窗体后,对蛇身做了一个定位 , 再 把 游戏

10、菜 单 中 的 开始 和 结 束 做 了一 个 说 明 ,即 开 始Timer1.Interval =1000,结束Timer1.Interval = 0,然后再说明Timer1 的用法,然后是用键盘控制蛇爬行的用法都做了说明,但是在键盘控制蛇爬行时对Runway变量没有做定义和说明,还有定义蛇的四个行走方向对Call move_snake (函数)也没有做说明,在开始游戏是有一个重要的代码Call init_game也会在模块中说明,(开始我做游戏代码是就没有Call init_game这一项代码,也没有说明,结果程序是可以运行的, 而且蛇也会向四个方向爬行的,但是运行的路线是不一样的)在

11、Form1没有说明的这几个方面会在模块中一一提到,并解释清楚。下面是模块 Module1 的代码:(先在工程菜单中添加一个模块)定义变量Public Runway As Integer定义蛇身Public Type str_snake_pointx As Integery As IntegerEnd Type蛇身初始化,定义蛇身Public snake_init(0 To 3) As str_snake_point Public snake_point As str_snake_pointPublic Sub init_game()Dim i As IntegerFor i = 0 To 3

12、Step 1Form1.Shape1(i).Left = snake_init(i).xForm1.Shape1(i).Top = snake_init(i).yNext iRunway = 0End SubPublic Sub move_snake()Dim tempx As IntegerDim tempy As IntegerDim i As IntegerFor 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).Lefttempy = Form1.Shape1(i).TopFor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论