贪吃蛇VB编程详解2.docx

上传人:b****1 文档编号:665089 上传时间:2022-10-11 格式:DOCX 页数:8 大小:292.60KB
下载 相关 举报
贪吃蛇VB编程详解2.docx_第1页
第1页 / 共8页
贪吃蛇VB编程详解2.docx_第2页
第2页 / 共8页
贪吃蛇VB编程详解2.docx_第3页
第3页 / 共8页
贪吃蛇VB编程详解2.docx_第4页
第4页 / 共8页
贪吃蛇VB编程详解2.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

贪吃蛇VB编程详解2.docx

《贪吃蛇VB编程详解2.docx》由会员分享,可在线阅读,更多相关《贪吃蛇VB编程详解2.docx(8页珍藏版)》请在冰豆网上搜索。

贪吃蛇VB编程详解2.docx

贪吃蛇VB编程详解2

VB编程有点象搭积木,一个游戏可以由几个小程序组成,然后通过特定的方式联系在一起。

玩贪吃蛇游戏时,注意到游戏主要由以下几部分做法组成:

1.随机出现的食物的做法

食物的颜色是随机出现,食物为一个小圆,外框线是黑色的2.键盘控制按钮控制蛇运行的做法3.食物吃掉,蛇身加长的做法

4.蛇死时的闪动的做法

5.蛇撞墙或撞自身后游戏结束的做法

蛇头为圆形,有外框线,蛇身为方形,颜色是随机的,有外框线我找到了一个贪吃蛇的VB代码,仔细的把这个贪吃蛇代码根据以上

几部分分解开来,就象把一个搭好的积木城堡又重新拆解成一块块的积木。

贪吃蛇VB代码详解——键盘控制蛇运行的做法

2.1在VB应用程序里设计好小游戏(贪吃蛇向前、向左向右和向后爬行),共有控件如下:

控件名称

Forml

shape

Timer

数量

1

共4个

1

2.2控件的属性

Forml:

默认值,宽度和高度尺寸适中

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

Shapel

(2)

表示蛇身

FillColor在调色版中选一种颜色

BorderStyle选择1-Solid

shape设为O-Rectangle

FillStyle选为0-Solid

Shapel(3)

表示蛇身

FillColor在调色版中选一种颜色

BorderStyle选择1-Solid

Shape选择0-Rectangle

FillStyle选为0-Solid

Timer:

默认值

设计界面如下图所示

■For*!

匚□冈

2.3如何给小游戏添加菜单栏

选择VB的菜单栏中的工具菜单,在工具菜单中选择菜单编辑

器一项,给贪吃蛇——键盘控制按钮控制蛇爬行小游戏再添加一个菜

单栏,打开游戏菜单后,里面有两个选顶,一个是开始,一个是结束

标题

游戏(主菜单)

开始

结束

名称(代码)

Game

Start

Exit

2.4游戏代码说明,

其中的Runstep为蛇身方格的宽度,在下图说明中为10,但在实际游

戏中为400个点,以下是代表四个方向(游戏代码)的四个选项:

-Runstep

+Runstep

方向为纵向

Shape1(0).Top

+Runstep

另外还有就是用键盘的四个方向键控制蛇往前后左右的行走,我一开始也搞不清楚为什么用Case37,Case38,Case39,Case4这四个代表

键盘的KeyCode号码能代表四个方向,好在我查到了两个贪吃蛇代

码,全是37、38、39、40这个个KeyCode号码,我就觉得很奇怪,

结果代表键盘的四个方向的代码真的是用37—38—39—40来表示

的,因为我从贪吃蛇是单独分离出来的贪吃蛇往前后左右爬行的小游戏运行后可以用键盘控制的

请看游戏代码吧:

3.游戏代码

一个是窗体(Form1)代码,还有一个是模块代码,本来想把他们二

合一成为窗体代码的,可是是从原来的游戏中分离出来的,所以还有

一个为模块(Module1)的代码

Form1代码:

ConstRunstep=400

定义常量,即蛇身为一个shape的宽度

变量在模块中定义,窗体中没有定义

PrivateSubexit_Click()

Timer1.Interval=0

EndSub

PrivateSubform_load()‘载入窗体,初始化蛇身为一个数组shape1(i)DimiAsInteger

Fori=0To3Step1

snake_init(i).x=Shape1(i).Leftsnake_init(i).y=Shape1(i).TopNexti

EndSub

PrivateSubForm_KeyDown(KeyCodeAsInteger,shiftAsInteger)SelectCaseKeyCode

Case37

‘蛇不可以退着走,但可以拐弯

IfRunway<>2Then

Runway=0

EndIf

Case38

IfRunway<>3Then

Runway=1

EndIf

Case39

IfRunway<>0Then

Runway=2

EndIf

Case40

IfRunway<>1Then

Runway=3

EndIf

EndSelect

EndSub

PrivateSubstart_Click()

Timer1.Interval=1000

Callinit_game

EndSub

PrivateSubTimer1_Timer()snake_point.x=Shape1(0).Leftsnake_point.y=Shape1(0).Top

SelectCaseRunway

Case0

Shape1(0).Left=Shape1(0).Left-Runstep

Callmove_snake

Case1

Shape1(0).Top=Shape1(0).Top-Runstep

Callmove_snake

Case2

Shape1(0).Left=Shape1(0).Left+Runstep

Callmove_snake

Case3

Shape1(0).Top=Shape1(0).Top+Runstep

Callmove_snake

EndSelect

EndSub

注解:

在Form1中对Form1load即载入窗体后,对蛇身做了一个定位,再把游戏菜单中的开始和结束做了一个说明,即开始Timer1.Interval=1000,结束Timer1.Interval=0,然后再说明Timer1的用法,然后是用键盘控制蛇爬行的用法都做了说明,但是在键盘控制蛇爬行时对Runway变量没有做定义和说明,还有定义蛇的四个行走方向对Callmove_snake(函数)也没有做说明,在开始游戏是有一个重要的代码Callinit_game也会在模块中说明,(开始我做游戏代码是就没有Callinit_game这一项代码,也没有说明,结果程序是可以运行的,而且蛇也会向四个方向爬行的,但是运行的路线是不一样的)在Form1没有说明的这几个方面会在模块中一一提到,并解释清楚。

下面是模块Module1的代码:

(先在工程菜单中添加一个模块)‘定义变量

PublicRunwayAsInteger

‘定义蛇身

PublicTypestr_snake_point

xAsIntegeryAsInteger

EndType

‘蛇身初始化,定义蛇身

Publicsnake_init(0To3)Asstr_snake_point

Publicsnake_pointAsstr_snake_point

PublicSubinit_game()

DimiAsInteger

Fori=0To3Step1

Form1.Shape1(i).Left=snake_init(i).xForm1.Shape1(i).Top=snake_init(i).yNexti

Runway=0

EndSub

PublicSubmove_snake()

DimtempxAsInteger

DimtempyAsInteger

DimiAsInteger

Fori=1To3Step1

'把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

Form1.Shape1(i).Left=snake_point.x

Form1.Shape1(i).Top=snake_point.ysnake_point.x=tempx

snake_point.y=tempy

Nexti

EndSub

4.编写完代码,运行程序,结果如下:

5.总结

通过对VB这一课程的自学,了解并掌握了其基本操作。

课程设计的形式加深了对VB这一计算机语言的认知

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1