贪吃蛇VB编程详解2
VB贪吃蛇
Option Explicit
'******************************************************************************************* ***********************************
'全局常量
Public Enum MAP_PROPERTY '地图属性
MAP_EMPTY = 0 '空白地
MAP_FOOD '食物
MAP_BOMB '炸弹,陷阱
MAP_PRIZE '加分奖品
MAP_SNAKE '蛇身
End Enum
Public Const MAP_SCALE As Integer = 15 '地图放大倍数
'地图网格数(Index值,首值为0)
Public Const MAX_COL_INDEX As Integer = 19
Public Const MAX_ROW_INDEX As Integer = 10
Public Const START_SNAKE_LENGTH As Integer = 8 '蛇身初始长度
Public Const SPEED_LV1 As Integer = 200 '第一级(最慢)的速度(Timer.Interval,最快第9级=40)Public Const SPEED_CHANGE As Integer = 20 '前后2个等级之间的 Interval差值(毫秒)
'定义控制键
Public Const KEY_PAUSE As Integer = vbKeyNumpad5
{财务管理税务规划}编程高手之路入门和游戏编写贪吃蛇单人版游戏二
{财务管理税务规划}编程高手之路入门和游戏编写贪吃蛇单人版游戏二
OptionExplicit
PrivateSubcmdHelp_Click()
IfblnPause=FalseThenCallForm_KeyDown(KEY_PAUSE,0)'如果游戏正在进行,则发送“暂停”按键事件,暂停游戏
EndSub
'开始新游戏
PrivateSubcmdNewGame_Click()
DimiAsInteger
Randomize'重新生成随机数列
blnStartGame=NotblnStartGame
IfblnStartGameThen
="停止"
Else
="新游戏"
EndIf
'中止游戏
IfblnStartGame=FalseThen
'如果上一次的奖品还没有消失(以PrizeRemain>0为标志),就先清除旧的奖品,然后才显示新的奖品
IfPrizeRemain>0ThenCallShowPrize(False)
P1.Score=0'玩家的初始分数
P1.Food=0
P1.Bomb=0
curEatCount=0
PrizeRemain=0
blnPause=False
=False
=P1.Score
=P1.Food
=P1.Bomb
P1.blnGameOver=True
=True
=False
ExitSub
EndIf
blnThroughWall=True'穿墙模式blnOnKeyEvents=True
'暂时使用默认填充色
Map_Bomb_Color=BOMB_COLOR
Map_Empty_Color=EMPTY_COLOR
贪吃蛇VB代码
Option Explicit
Private WithEvents Timer1 As Timer
Private WithEvents Label1 As Label
Dim GFangXiang As Boolean
Dim HWB As Single
Dim She() As ShenTi
Dim X As Long, Y As Long
Dim ZhuangTai(23, 23) As Long
Private Type ShenTi
F As Long
X As Long
Y As Long
End Type
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim C As Long
If KeyCode = 27 Then End
If KeyCode = 32 Then
If Timer1.Enabled = True Then
Timer1.Enabled = False
Label1.Visible = True
Else
Timer1.Enabled = True
Label1.Visible = False
End If
End If
C = UBound(She)
If GFangXiang = True Then Exit Sub
Select Case KeyCode
Case 37
If She(C).F = 2 Then Exit Sub
She(C).F = 0
GFangXiang = True
Case 38
If She(C).F = 3 Then Exit Sub
vb课程设计贪吃蛇
vb课程设计贪吃蛇
一、课程目标
知识目标:
1. 学生理解并掌握VB编程语言的基本语法和结构;
2. 学生掌握利用VB编写简单的图形用户界面(GUI)程序;
3. 学生理解贪吃蛇游戏的逻辑和规则,并能够用VB实现该游戏的核心功能。技能目标:
1. 学生能够运用VB编程语言进行程序设计,培养编程思维和解决问题的能力;
2. 学生能够运用VB的绘图功能,实现图形的显示和移动;
3. 学生能够通过编写贪吃蛇游戏,提高自己的逻辑思维能力和编程实践能力。情感态度价值观目标:
1. 学生培养对计算机编程的兴趣,激发学习编程的热情;
2. 学生在编程实践中,培养团队协作、共同解决问题的精神;
3. 学生通过完成贪吃蛇游戏,增强自信心和成就感,树立克服困难的决心。课程性质:本课程为VB编程的实践应用课程,旨在让学生通过贪吃蛇游戏的开发,巩固VB编程知识,提高编程实践能力。
学生特点:学生处于初中年级,具备一定的计算机操作能力和VB编程基础,对游戏编程有较高的兴趣。
教学要求:教师需引导学生掌握VB编程的基本知识,注重培养学生的编程思维和实践能力,关注学生的情感态度,激发学生的学习兴趣。在教学过程中,
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容
1. VB编程基础回顾:变量、数据类型、运算符、控制结构(顺序、选择、循环);
2. 图形用户界面设计:窗体、控件、事件;
3. VB绘图方法:Cls、Line、Circle等绘图语句;
4. 贪吃蛇游戏逻辑分析:游戏规则、移动算法、食物和得分机制;
5. 编程实现贪吃蛇游戏:设计游戏界面、编写游戏逻辑、实现游戏功能。
vb课程设计贪吃蛇设计体会
vb课程设计贪吃蛇设计体会
一、课程目标
知识目标:
1. 让学生掌握VB编程基础,包括变量声明、数据类型、运算符、控制结构等;
2. 帮助学生理解贪吃蛇游戏的逻辑结构和编程实现方法;
3. 使学生了解在VB中如何使用事件处理、绘图等方法实现游戏功能。
技能目标:
1. 培养学生运用VB编程解决实际问题的能力,能独立编写简单的贪吃蛇游戏程序;
2. 提高学生的逻辑思维能力,学会分析问题、设计算法并实现程序;
3. 培养学生团队协作能力,学会与他人共同分析、调试和优化程序。
情感态度价值观目标:
1. 激发学生对计算机编程的兴趣和热情,培养自主学习能力;
2. 培养学生面对问题积极思考、勇于挑战的精神,增强自信心;
3. 引导学生体验编程带来的成就感,培养良好的学习习惯和职业道德。
本课程针对学生年级特点,结合贪吃蛇游戏设计,注重实践操作和团队合作。通过本课程的学习,期望学生能够掌握VB编程基础,培养编程思维,提高解决问题的能力,并激发对编程的兴趣和热情。同时,课程目标分解为具体学习成果,以便于教学设计和评估。
二、教学内容
1. VB编程基础:
- 数据类型与变量声明
- 运算符与表达式
- 控制结构(顺序、选择、循环)
- 数组的使用
2. 贪吃蛇游戏逻辑分析:
- 游戏规则与设计思路
- 游戏中的坐标表示
- 蛇的移动、转向与增长
- 食物的随机生成与消失
3. VB实现贪吃蛇游戏:
- 窗体设计与应用
- 事件处理
- 绘图方法
- 游戏逻辑的实现与优化
4. 团队协作与项目实践:
- 分析与设计
- 编程与调试
- 优化与展示
- 团队协作与沟通
(完整)VB实现贪吃蛇小游戏
VB实现贪吃蛇小游戏——比较适合VB初学者,属原创作品
图1
图2
图3
如图1所示,布置控件,其中有4个timer控件,1个picture控件(底图),4个command控件(上下左右),10个label控件.
其他功能都在程序里实现,其中贪吃蛇都是由点来组成的,初学者主要学习一下timer控件的应用,还有贪吃蛇拐弯怎么实现的.图2、图3是游戏视图.
主程序:
Public a, b, f As Double: Public i, j, c, d, e, g, h, z As Integer
Dim aa(100) As Double: Dim bb(100) As Double
Private Sub Form_Load()
a = 100:
b = 300:
c = 4 'a、b定义第一个点(红点)位置,c能控制蓝点数量
g = 2000: h = 2000
Timer1.Interval = (200 — z * 30) ’定义每个定时器间隔时间 0.2S
Timer2。Interval = (200 - z * 30)
Timer3。Interval = (200 — z * 30)
Timer4.Interval = (200 - z * 30)
Timer5。Interval = 300
Timer1。Enabled = True '初设一开始向右走
Timer2.Enabled = False
Timer3.Enabled = False
Timer4。Enabled = False
End Sub
Private Sub Timer1_Timer() '向右走
VB编贪吃蛇游戏
想要运行成功,就自己先添加控件,我想能看懂这些的会知道怎么做的,小东西,对新手可能有些启示
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" ( _
ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long
Dim lngTalk As Long '下面是用来播放声音的
Dim strWaveFile As String
Const lngSync = 1
Dim Direction As Integer '移动方向
Dim Score As Integer '记录分数
Dim stepN As Integer '记录是第几次移动
Dim countN As Long '记录演示的是第几步
Dim TrackX(1 To 50000) '记录运行轨迹的数组
Dim TrackY(1 To 50000)
Private Sub Form_Activate()
Form1.KeyPreview = True '要想键盘操纵效果显示,要记得先把Form的KeyPreview属性设为True
Form1.BackColor = vbBlack
Call ReSet
End Sub
Private Sub ReSet() '重新布置
Timer1.Enabled = True
Timer1.Interval = 500
lblOver.Caption = ""
Direction = 1
小时候经典游戏用VB编的编写实例教程大全全!
这些游戏以前玩过吧,快下载看它们
是怎么编写的!
目录:
·编写趣味撞球小游戏
·用VB6.0设计简易赛车游戏
·Visual Basic小游戏:猜英雄
·VB游戏写作技巧(1)秀图篇
·VB游戏写作技巧(2)网络篇
·VB 贪吃蛇单人版游戏(一)
·VB 贪吃蛇单人版游戏(二)
·VB 贪吃蛇单人版游戏(三)
·VB 贪吃蛇单人版游戏(四)
·用VB开发即时战略游戏
正文:
编写趣味撞球小游戏
文章来源:沐风经典文章作者:佚名
Visual Basic是一个功能强大的工具,它有一大特点就是易学易用,下面我们就通过写一个“趣味撞球”的程序来初步体会一下。
首先启动VB5,新建一个标准的EXE工程。此时可以看到,工程包括一个Form1框体。在Form1边框的右下角按住鼠标左键不放,拖动鼠标把Form1的面积改为适当大小,比如6930×4320。再在属性框中把Form1的ScaleMode 属性改为3-Pixel,表明我们将以像素为我们的坐标计算单位,把Form1的StartUpPosition 属性设为2-CenterScreen,使运行时窗体出现在屏幕正中。
现在,在控件面板上选取CommandButton(命令按钮)控件,为Form1添加Command1和Command2两个按钮控件,把它们的大小设为121×25,再在属性框中把Command1的Caption填为“&GO”,把Command2的Caption填为“&QUIT”,并把Command1放到框体的右上角,把Command2放到框体的右下角。
然后,在控件面板上选取Timer(时钟)控件,为Form1添加一个Timer1时钟控件。再在属性框中把它的Enabled属性改为False,Interval属性改为50,前一个值表示该时钟控
《面向对象程序设计》贪吃蛇小游戏二
《面向对象程序设计》贪吃蛇小游戏
一实验开发背景及意义
1.1实验目的
面对对象课程设计课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对C++语言的理解和掌握。提高和加强学生的计算机应用及软件开发能力,使学生具各初级程序员的基本素质,培养学生独立分析问题、解决问题,查阅资料以及目学能力,以适应信息管理行业目薪
月异的发展形势。
1.2实验主要软件
利用Microsoft Visual C++2010学习版设计制作一个贪吃蛇小游戏
C++图形库EasyX
1.3实验设计思想
程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块。移动时必须从蛇头开始,所以蛇头不可以向相反的方向移动,如果不按下意键,蛇自行在当前方向右前移,但按下有效方向键后,蛇头朝该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置一而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始面出蛇,这时,由于未清屏的原因,原来的蛇的位置和新的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后节用背景色覆盖。食物的出现与消失也是画知形块和覆盖矩形块。
二系统需求分析
2.1游戏规则
开始游戏后,W A S D键控制贪吃蛇的移动方向,当贪吃蛇向一个方向移动时,不能立刻向反方向移动。贪吃蛇撞到的自己的身体或者撞到墙时,游戏结束,并输出“GAME OVER!”。贪吃蛇吃到一个食物后,出现白色闪烁一次,身体随之增加一个单位长度。
2.2流程图
三主要函数
3.1贪吃蛇
贪吃蛇 VB
模块代码
Public vol As Integer '音量
Public on_off As Integer '音乐开启/关闭Public speed As Integer '难度系数Public time As Long '运行时间Public hour As String
Public menite As String
Public second As String
Public Type she
hedTop As Integer '蛇身坐标
hedLeft As Integer
hedHeigth As Integer
hedWidth As Integer
End Type
Public snake As Integer ' 蛇长
Public ctr As Integer '方向指示
主要代码
Private Sub backcolor_Click()
Form6.Show
End Sub
Private Sub Form_Load() 'Form LOAD
Label6.Caption = "未开始"
Timer1.Enabled = False
Timer2.Enabled = False
Timer4.Enabled = True
Shape1(0).Visible = False
Timer2.Interval = 1000
Timer3.Interval = 100
Timer4.Interval = 200
Label1.Width = Label1.Height
WindowsMediaPlayer1.settings.autoStart = False
贪吃蛇-简单的vb程序代码
Vb课程设计
题目贪吃蛇小游戏
学生姓名张翠翠
专业计算机信息管理
班级 086111
学号 ********
任课老师丁木华
东华理工大学高等职业技术学院二0 一0 年六月
一背景
蛇——传说中的圣灵之物,仰头为神、俯首为魔。蛇是月亮国膜拜的神,月亮国的子民们都认为蛇是万能的主宰派来保护他们的守护者。这里有蟒蛇、布袋蛇、响尾蛇、白火蛇、眼镜蛇、魔鬼蛇、机器蛇、水蛇、小龙、橡皮蛇等等各种各样的蛇。蛇在这个岛屿就像空气一样自然的出现在各个角落,有些还成为居民的宠物,陪伴孩子长大,和年轻人一起去探险,守护着散步的老人。古老月亮国是一个与世隔绝的岛国,善良的人民世世代代生活在这片远离浮躁的世界里,过着与世无争的生活享受着他们的幸福和美满。这里有人们赖以生存的茂密的森林、荒凉的沙漠、寒冷的冰川和广阔的大海也有狂暴的火山和神秘的古代遗址。在善良的女娲神保佑下,人们的生活安宁平静。为了答谢女娲的庇佑,每年月亮国的国民都会举办一个守护蛇大赛,大家都会拿出自己最强、最炫、最快、最稀有的蛇来参加比赛,获得第一名的人将得到国王的特别嘉奖。所以国民一生都在不停的收集各种稀奇古怪的蛇,或者不断的培养更有威力的蛇。在这奇幻的大陆上,在每一片土地都布满着魔法和冒险。勇士们,快带上自己的守护蛇,去和守护蛇一起变的更加强壮、迅猛,去异界寻找那传说中的与众不同的蛇,去神秘的天界去寻找月亮岛的秘密……那将是怎么的一个神奇的经历呢?我们一起去见证那份不可思议的历程吧!
贪吃蛇这款游戏,是利用VB编写的一个软件,在窗体里的任意角落出现青蛙,游戏者通过↑↓←→控制贪吃蛇,吃掉一个青蛙,蛇身长长一格,分数相应的增加,游戏界面有两个按钮,开始和难度选择键。
VB实现贪吃蛇小游戏
VB实现贪吃蛇小游戏
以下为VB实现贪吃蛇小游戏的代码及其详细说明。
```
'主程序模块
Option Explicit
Private WithEvents Snake As SnakeGame
Private FrameRate As Integer
Private FoodColor As Long
Private SnakeColor As Long
Private GameOver As Boolean
Private Sub Form_Load
FrameRate = 100
FoodColor = vbGreen
SnakeColor = vbBlue
GameOver = False
Set Snake = New SnakeGame
Snake.CreateGame FrameRate, FoodColor, SnakeColor Me.ScaleMode = vbPixels
Me.AutoRedraw = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Not GameOver Then
Select Case KeyCode
Case vbKeyUp
Snake.ChangeDirection SnakeDirection.Up
Case vbKeyDown
Snake.ChangeDirection SnakeDirection.Down
Case vbKeyLeft
Snake.ChangeDirection SnakeDirection.Left
贪食蛇VB源代码
定义蛇的运动速度枚举值Private Enum tpsSpeedQUICKLY = 0SLOWLY = 1End Enum'定义蛇的运动方向枚举值Private Enum tpsDirectionD_UP = 38D_DOWN = 40D_LEFT = 37D_RIGHT = 39End Enum'定义运动区域4个禁区的枚举值Private Enum tpsForbiddenZoneFZ_TOP = 30FZ_BOTTOM = 5330FZ_LEFT = 30FZ_RIGHT = 5730End Enum'定义蛇头及身体初始化数枚举值Private Enum tpsSnakeSNAKEONE = 1SNAKETWO = 2SNAKETHREE = 3SNAKEFOUR = 4End Enum'定义蛇宽度的常量Private Const SNAKEWIDTH As Integer = 100'该过程用于显示游戏信息Private Sub Form_Load()Me.ShowMe.lblTitle = "BS贪食蛇 — (版本 " & App.Major & "." & App.Minor & "." & App.Revision & ")"Me.Caption = Me.lblTitle.CaptionfrmSplash.Show 1End Sub'该过程用于使窗体恢复原始大小Private Sub Form_Resize()If Me.WindowState <> 1 ThenMe.Caption = ""Me.Height = 6405 '窗体高度为 6405 缇Me.Width = 8535 '窗体宽度为 8535 缇Me.Left = (Screen.Width - Width) \ 2Me.Top = (Screen.Height - Height) \ 2End IfEnd Sub'该过程用于重新开始开始游戏Private Sub cmdGameStart_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Beepmsg = MsgBox("您确认要重新开始游戏吗?", 4 + 32, "BS贪食蛇")If msg = 6 Then Call m_subGameInitializeEnd Sub'该过程用于暂停/运行游戏Private Sub chkPause_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Me.chkPause.Caption = "暂停游戏(&P)" ThenMe.tmrSnakeMove.Enabled = FalseMe.tmrGameTime.Enabled = FalseMe.picMoveArea.Enabled = FalseMe.lblPauseLab.Visible = TrueMe.chkPause.Caption = "继续游戏(&R)"ElseMe.tmrSnakeMove.Enabled = TrueMe.tmrGameTime.Enabled = TrueMe.picMoveArea.Enabled = TrueMe.lblPauseLab.Visible = FalseMe.chkPause.Caption = "暂停游戏(&P)"End IfEnd Sub'该过程用于显示游戏规则Private Sub cmdGameRules_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)BeepMsgBox " BS贪食蛇:一个规则最简单的趣味游戏,您将用键盘" & Chr(13) & _"上的4个方向键来控制蛇的运动方向。在运动过程中蛇" & Chr(13) & _"不能后退,蛇的头部也不能接触到运动区域的边线以外" & Chr(13) & _"和蛇自己的身体,否则就游戏失败。在吃掉随机出现的" & Chr(13) & _"果子后,蛇的身体会变长,越长难度越大。祝您好运!!", 0 + 64, "游戏规则"End Sub'该过程用于显示游戏开发信息Private Sub cmdAbout_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)BeepMsgBox "BS贪食
vb代码大全
'贪吃蛇游戏全代码,创建个新工程直接复制到代码编辑窗口就行
'按F5看看效果如何
'要Exe文件,就点文件->生成工程1.exe
Option Explicit
Private WithEvents Timer1 As Timer
Private WithEvents Label1 As Label
Dim GFangXiang As Boolean
Dim HWB As Single
Dim She() As ShenTi
Dim X As Long, Y As Long
Dim ZhuangTai(23, 23) As Long
Private Type ShenTi
F As Long
X As Long
Y As Long
End Type
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim C As Long
If KeyCode = 27 Then End
If KeyCode = 32 Then
If Timer1.Enabled = True Then
Timer1.Enabled = False
Label1.Visible = True
Else
Timer1.Enabled = True
Label1.Visible = False
End If
End If
C = UBound(She)
If GFangXiang = True Then Exit Sub Select Case KeyCode
Case 37
If She(C).F = 2 Then Exit Sub
贪吃蛇VB编程详解2
VB编程有点象搭积木,一个游戏可以由几个小程序组成,然后通过特定的方式联系在一起。
玩贪吃蛇游戏时,注意到游戏主要由以下几部分做法组成:
1.随机出现的食物的做法
食物的颜色是随机出现,食物为一个小圆,外框线是黑色的2.键盘控制按钮控制蛇运行的做法
3.食物吃掉,蛇身加长的做法
4.蛇死时的闪动的做法
5.蛇撞墙或撞自身后游戏结束的做法
蛇头为圆形,有外框线,蛇身为方形,颜色是随机的,有外框线
我找到了一个贪吃蛇的VB代码,仔细的把这个贪吃蛇代码根据以上几部分分解开来,就象把一个搭好的积木城堡又重新拆解成一块块的积木。
贪吃蛇VB代码详解——键盘控制蛇运行的做法
课程作业报告内容
2.1 在VB应用程序里设计好小游戏(贪吃蛇向前、向左向右和向后爬行),共有控件如下:
2.2控件的属性
Form1:默认值,宽度和高度尺寸适中
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 0Shape1(0).Left = Shape1(0).Left -
用Excel与VBA编写贪食蛇游戏
丽惫 ; 、 l 辩 船
婆一
|
骟
W
翌 -
碰 到了这些 区域 ,如果碰到则游戏结束 。
3 .代 码 实 现 贪 食 蛇 游 戏 算 法 的核 心 是 贪食 蛇 蛇 身 的表 示 及 处 理 方法 。
黾
监
受 泣
一
卫
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB编程有点象搭积木,一个游戏可以由几个小程序组成,然后通过特定的方式联系在一起。
玩贪吃蛇游戏时,注意到游戏主要由以下几部分做法组成:
1.随机出现的食物的做法
食物的颜色是随机出现,食物为一个小圆,外框线是黑色的2.键盘控制按钮控制蛇运行的做法
3.食物吃掉,蛇身加长的做法
4.蛇死时的闪动的做法
5.蛇撞墙或撞自身后游戏结束的做法
蛇头为圆形,有外框线,蛇身为方形,颜色是随机的,有外框线
我找到了一个贪吃蛇的VB代码,仔细的把这个贪吃蛇代码根据以上几部分分解开来,就象把一个搭好的积木城堡又重新拆解成一块块的积木。
贪吃蛇VB代码详解——键盘控制蛇运行的做法
课程作业报告内容
2.1 在VB应用程序里设计好小游戏(贪吃蛇向前、向左向右和向后爬行),共有控件如下:
2.2控件的属性
Form1:默认值,宽度和高度尺寸适中
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