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

下载本文档

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

文档简介

VB 编程有点象搭积木 一个游戏可以由几个小程序组成 然后通过 特定的方式联系在一起 玩贪吃蛇游戏时 注意到游戏主要由以下几部分做法组成 1 随机出现的食物的做法 食物的颜色是随机出现 食物为一个小圆 外框线是黑色的 2 键盘控制按钮控制蛇运行的做法 3 食物吃掉 蛇身加长的做法 4 蛇死时的闪动的做法 5 蛇撞墙或撞自身后游戏结束的做法 蛇头为圆形 有外框线 蛇身为方形 颜色是随机的 有外框线 我找到了一个贪吃蛇的 VB 代码 仔细的把这个贪吃蛇代码根据以 上几部分分解开来 就象把一个搭好的积木城堡又重新拆解成一块 块的积木 贪吃蛇 VB 代码详解 键盘控制蛇运行的做法 课程作业报告内容 2 1 在 VB 应用程序里设计好小游戏 贪吃蛇向前 向左向右 和向后爬行 共有控件如下 控件名称Form1shapeTimer 数量1共 4 个1 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 的菜单栏中的工具菜单 在工具菜单中选择菜单编辑 器一项 给贪吃蛇 键盘控制按钮控制蛇爬行小游戏再添加一个 菜单栏 打开游戏菜单后 里面有两个选顶 一个是开始 一个是 结束 标题游戏 主菜单 开始结束 名称 代码 GameStartExit 2 4 游戏代码说明 其中的 Runstep 为蛇身方格的宽度 在下图说明中为 10 但在实际 游戏中为 400 个点 以下是代表四个方向 游戏代码 的四个选项 Case 0Shape1 0 Left Shape1 0 Left RunstepLeft 方向减 往左 走的 蛇 注意蛇行走的 方向为横向 Shape1 0 Left Runstep Case1Shape1 0 Top Shape1 0 Top RunstepTop 方向减 往下 走的 蛇 注意蛇行走的 方向为纵向 Shape1 0 Top Runstep Case 2Shape1 0 Left Shape1 0 Left RunstepLeft 方向加 往右 走的 蛇 注意蛇行走的 方向为横向 Shape1 0 Left Runstep Case 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 号码 我就觉得很奇 怪 结果代表键盘的四个方向的代码真的是用 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 F

温馨提示

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

评论

0/150

提交评论