已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB编程有点象搭积木,一个游戏可以由几个小程序组成,然后通过特定的方式联系在一起。玩贪吃蛇游戏时,注意到游戏主要由以下几部分做法组成:1随机出现的食物的做法 食物的颜色是随机出现,食物为一个小圆,外框线是黑色的2键盘控制按钮控制蛇运行的做法3食物吃掉,蛇身加长的做法4蛇死时的闪动的做法5蛇撞墙或撞自身后游戏结束的做法 蛇头为圆形,有外框线,蛇身为方形,颜色是随机的,有外框线我找到了一个贪吃蛇的VB代码,仔细的把这个贪吃蛇代码根据以上几部分分解开来,就象把一个搭好的积木城堡又重新拆解成一块块的积木。贪吃蛇VB代码详解键盘控制蛇运行的做法 课程作业报告内容21 在VB应用程序里设计好小游戏(贪吃蛇向前、向左向右和向后爬行),共有控件如下:控件名称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)表示蛇身FillColor在调色版中选一种颜色BorderStyle选择1-Solidshape设为0-RectangleFillStyle选为0-SolidShape1(3)表示蛇身FillColor在调色版中选一种颜色BorderStyle选择1-SolidShape选择0-RectangleFillStyle选为0-SolidTimer:默认值设计界面如下图所示23如何给小游戏添加菜单栏选择VB的菜单栏中的工具菜单,在工具菜单中选择菜单编辑器一项,给贪吃蛇键盘控制按钮控制蛇爬行小游戏再添加一个菜单栏,打开游戏菜单后,里面有两个选顶,一个是开始,一个是结束标题游戏(主菜单)开始结束名称(代码)GameStartExit24游戏代码说明,其中的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 + RunstepLeft方向加往右走的蛇注意蛇行走的方向为横向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号码,我就觉得很奇怪,结果代表键盘的四个方向的代码真的是用37383940来表示的,因为我从贪吃蛇是单独分离出来的贪吃蛇往前后左右爬行的小游戏运行后可以用键盘控制的请看游戏代码吧:3游戏代码一个是窗体(Form1)代码,还有一个是模块代码,本来想把他们二合一成为窗体代码的,可是是从原来的游戏中分离出来的,所以还有一个为模块(Module1)的代码 Form1代码:Const Runstep = 400定义常量,即蛇身为一个shape的宽度变量在模块中定义,窗体中没有定义Private Sub exit_Click()Timer1.Interval = 0End SubPrivate 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 SubPrivate Sub Form_KeyDown(KeyCode As Integer, shift As Integer)Select Case KeyCodeCase 37蛇不可以退着走,但可以拐弯If Runway 2 ThenRunway = 0End IfCase 38If Runway 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(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即载入窗体后,对蛇身做了一个定位,再把游戏菜单中的开始和结束做了一个说明,即开始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_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 = 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).TopForm1.S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西服装学院党政管理岗招聘5人笔试考试参考题库及答案解析
- 2025广西南宁市江南区商务局招聘6人笔试考试参考题库及答案解析
- 2025山东滨州市人民医院合同制工作人员招聘10人笔试考试参考试题及答案解析
- 2025黑龙江哈尔滨启航劳务派遣有限公司派遣到哈尔滨工业大学材料科学与工程学院招聘考试笔试备考题库及答案解析
- 2025广东省云浮市百万英才汇南粤招聘市级机关事业单位紧缺人才11人(华南农业大学专场)考试笔试模拟试题及答案解析
- 2025浙江温州泰顺县彭溪镇中心卫生院招聘编外工作人员1人笔试考试参考试题及答案解析
- 2025浙江绍兴市镜湖开发集团有限公司下属国有企业招聘项目制员工6人考试笔试模拟试题及答案解析
- 2025齐鲁工业大学(山东省科学院)招聘人员1人考试笔试备考题库及答案解析
- 2025西安市永顺路学校教师招聘笔试考试参考题库及答案解析
- 加气混凝土配料浇注工安全素养强化考核试卷含答案
- 卡车充换电站建议书可行性研究报告备案
- 2024年加氢站技术规范
- 2025年广东南油服务有限公司招聘笔试参考题库含答案解析
- 全国第三届职业技能大赛(社会体育指导(健身)项目)选拔赛理论考试题库(含答案)
- 杭州市前期物业服务合同
- 人教版劳动教育一年级上册全册课件
- JJF 2182-2024农灌机井取水量计量监测方法
- 牙体解剖-牙体形态及生理意义(口腔解剖生理学课件)
- 2023年江苏省连云港市海州区商务局公务员考试《行政职业能力测验》历年真题及详解
- 食品药品法律服务行业五年发展预测分析报告
- 福建省2024年高中政治6月学业合格性模拟考试试题(含解析)
评论
0/150
提交评论