




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VB编程有点象搭积木,一个游戏可以由几个小程序组成,然后通过特定的方式联系在一起。玩贪吃蛇游戏时,注意到游戏主要由以下几部分做法组成:1随机出现的食物的做法 食物的颜色是随机出现,食物为一个小圆,外框线是黑色的2键盘控制按钮控制蛇运行的做法3食物吃掉,蛇身加长的做法4蛇死时的闪动的做法5蛇撞墙或撞自身后游戏结束的做法 蛇头为圆形,有外框线,蛇身为方形,颜色是随机的,有外框线我找到了一个贪吃蛇的VB代码,仔细的把这个贪吃蛇代码根据以上几部分分解开来,就象把一个搭好的积木城堡又重新拆解成一块块的积木。贪吃蛇VB代码详解键盘控制蛇运行的做法 课程作业报告内容21 在VB应用程序里设计好小游戏(贪吃蛇
2、向前、向左向右和向后爬行),共有控件如下:控件名称Form1shapeTimer数量1共4个1 22控件的属性Form1:默认值,宽度和高度尺寸适中Shape控件组,表示蛇头和蛇身,蛇头为圆形,蛇身为方形控件组控件属性Shape1(0)表示蛇头FillColor在调色版中选一种颜色BorderStyle选择1-SolidShape选择3-circleFillStyle选择0-SolidShape1(1)表示蛇身FillColor在调色版中选一种颜色BorderStyle选择1-SolidShape选择0-RectangleFillStyle选为0-SolidShape1(2)表示蛇身FillC
3、olor在调色版中选一种颜色BorderStyle选择1-Solidshape设为0-RectangleFillStyle选为0-SolidShape1(3)表示蛇身FillColor在调色版中选一种颜色BorderStyle选择1-SolidShape选择0-RectangleFillStyle选为0-SolidTimer:默认值设计界面如下图所示23如何给小游戏添加菜单栏选择VB的菜单栏中的工具菜单,在工具菜单中选择菜单编辑器一项,给贪吃蛇键盘控制按钮控制蛇爬行小游戏再添加一个菜单栏,打开游戏菜单后,里面有两个选顶,一个是开始,一个是结束标题游戏(主菜单)开始结束名称(代码)GameSta
4、rtExit24游戏代码说明,其中的Runstep为蛇身方格的宽度,在下图说明中为10,但在实际游戏中为400个点,以下是代表四个方向(游戏代码)的四个选项:Case 0Shape1(0).Left = Shape1(0).Left - RunstepLeft方向减往左走的蛇注意蛇行走的方向为横向Shape1(0).Left-RunstepCase1Shape1(0).Top = Shape1(0).Top - RunstepTop方向减往下走的蛇注意蛇行走的方向为纵向Shape1(0).Top-RunstepCase 2Shape1(0).Left = Shape1(0).Left + Ru
5、nstepLeft方向加往右走的蛇注意蛇行走的方向为横向Shape1(0).Left+RunstepCase 3Shape1(0).Top = Shape1(0).Top + RunstepTop方向加往上走的蛇注意蛇行走的方向为纵向Shape1(0).Top+Runstep另外还有就是用键盘的四个方向键控制蛇往前后左右的行走,我一开始也搞不清楚为什么用Case 37 ,Case 38,Case 39,Case 40这四个代表键盘的KeyCode号码能代表四个方向,好在我查到了两个贪吃蛇代码,全是37、38、39、40这个个KeyCode号码,我就觉得很奇怪,结果代表键盘的四个方向的代码真的是
6、用37383940来表示的,因为我从贪吃蛇是单独分离出来的贪吃蛇往前后左右爬行的小游戏运行后可以用键盘控制的请看游戏代码吧:3游戏代码一个是窗体(Form1)代码,还有一个是模块代码,本来想把他们二合一成为窗体代码的,可是是从原来的游戏中分离出来的,所以还有一个为模块(Module1)的代码 Form1代码:Const Runstep = 400定义常量,即蛇身为一个shape的宽度变量在模块中定义,窗体中没有定义Private Sub exit_Click()Timer1.Interval = 0End SubPrivate Sub form_load()载入窗体,初始化蛇身为一个数组sha
7、pe1(i)Dim i As IntegerFor i = 0 To 3 Step 1snake_init(i).x = Shape1(i).Leftsnake_init(i).y = Shape1(i).TopNext iEnd SubPrivate Sub Form_KeyDown(KeyCode As Integer, shift As Integer)Select Case KeyCodeCase 37蛇不可以退着走,但可以拐弯If Runway <> 2 ThenRunway = 0End IfCase 38If Runway <> 3 ThenRunway
8、= 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 0S
9、hape1(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 + RunstepCall 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这一项代码,也没有说明,结果程序是可以运行的,而且蛇也会向四个方向爬行的,但是运行的路线是不一样的)在Form1没有说明的这几个方面会在模块中一一提
11、到,并解释清楚。下面是模块Module1的代码:(先在工程菜单中添加一个模块)定义变量Public Runway As Integer定义蛇身Public Type str_snake_pointx As Integery As IntegerEnd Type蛇身初始化,定义蛇身Public snake_init(0 To 3) As str_snake_pointPublic snake_point As str_snake_pointPublic Sub init_game()Dim i As IntegerFor i = 0 To 3 Step 1Form1.Shape1(i).Left
12、 = 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).TopForm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股权转让及文化旅游产业融合发展协议
- 精神专科护理门诊规范化建设
- 苏州变更离婚协议书
- 道路工程转让协议书
- 事故认定书和解协议书
- 超市鞋架转让协议书
- 萝卜书摘婚后协议书
- 边贸生意转让协议书
- 项目自负盈亏协议书
- 公司给员工社保协议书
- 《更加注重价值创造能力 着力推进国企高质量发展》
- 关于我校中学生错误握笔姿势调查及矫正的尝试
- 积分制管理的实施方案及细则
- 正定古建筑-隆兴寺
- 走进物理-基础物理智慧树知到答案2024年广西师范大学
- 三菱电梯型号缩写简称
- 2024年版-生产作业指导书SOP模板
- 历年考研英语一真题及答案
- 宠物殡葬师理论知识考试题库50题
- 飞花令“水”的诗句100首含“水”字的诗句大全
- 门诊常见眼科病
评论
0/150
提交评论