小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx

上传人:b****2 文档编号:14597569 上传时间:2022-10-23 格式:DOCX 页数:37 大小:48.54KB
下载 相关 举报
小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx_第1页
第1页 / 共37页
小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx_第2页
第2页 / 共37页
小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx_第3页
第3页 / 共37页
小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx_第4页
第4页 / 共37页
小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx

《小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx》由会员分享,可在线阅读,更多相关《小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx(37页珍藏版)》请在冰豆网上搜索。

小时候经典游戏用VB编地编写实例教程大全全Word文档格式.docx

 

  VisualBasic是一个功能强大的工具,它有一大特点就是易学易用,下面我们就通过写一个“趣味撞球〞的程序来初步体会一下。

  首先启动VB5,新建一个标准的EXE工程。

此时可以看到,工程包括一个Form1框体。

在Form1边框的右下角按住鼠标左键不放,拖动鼠标把Form1的面积改为适当大小,比如6930×

4320。

再在属性框中把Form1的ScaleMode属性改为3-Pixel,明确我们将以像素为我们的坐标计算单位,把Form1的StartUpPosition属性设为2-CenterScreen,使运行时窗体出现在屏幕正中。

  现在,在控件面板上选取mandButton〔命令按钮〕控件,为Form1添加mand1和mand2两个按钮控件,把它们的大小设为121×

25,再在属性框中把mand1的Caption填为“&GO〞,把mand2的Caption填为“&QUIT〞,并把mand1放到框体的右上角,把mand2放到框体的右下角。

  然后,在控件面板上选取Timer〔时钟〕控件,为Form1添加一个Timer1时钟控件。

再在属性框中把它的Enabled属性改为False,Interval属性改为50,前一个值表示该时钟控件是否激活,后一个值决定该时钟控件产生Timer事件的间隔时间,我们将用它来控制小球的移动频率。

  到此为止,我们已经完成了全部的界面设计工作。

接下来要做的全部工作就是填入程序代码了。

DimBallXAsInteger

DimBallYAsInteger

DimAddXAsInteger

DimAddYAsInteger

DimHitXAsInteger

DimWAsInteger

DimHAsInteger

PrivateSubmand1_Click()

BallX=Int(Rnd

(1)*Form1.ScaleWidth/10)*5+25

BallY=Int((Form1.ScaleHeight)/10)*5

AddX=-5

AddY=-5

Form_Paint

Timer1.Enabled=True

EndSub

PrivateSubmand2_Click()

End

PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

X=X-50

IfX<

15ThenX=15

IfX>

W-105ThenX=W-105

HitX=X

IfTimer1.Enabled=TrueThen

Line(16,H-5)-(W-6,H),&HC0C0C0,BF

Line(HitX,H)-(HitX+100,H-5),0,BF

EndIf

PrivateSubForm_Paint()

Cls

W=Int((ScaleWidth-140)/5)*5

H=Int((ScaleHeight-10)/5)*5

BackColor=&HC0C0C0

Line(10,10)-(15,H),0,BF

Line(W-5,10)-(W,H),0,BF

Line(10,10)-(W,15),0,BF

PrivateSubTimer1_Timer()

Form1.Circle(BallX,BallY),4,&HC0C0C0

BallX=BallX+AddX

BallY=BallY+AddY

Form1.Circle(BallX,BallY),4,0

IfBallX<

=20ThenAddX=-AddX

IfBallY<

=20ThenAddY=-AddY

IfBallX>

=W-10ThenAddX=-AddX

IfBallY>

=H-10Then

IfBallXHitX+100Then

Timer1.Enabled=False

AddY=-AddY

EndSub

一旦程序代码输入完毕,你就可以按F5开始执行它,或是在File菜单里选取Make来生成EXE执行文件了,瞧,小球已经在你的屏幕上蹦来蹦去了。

programfan文章yaozheng

  简单的游戏往往更耐玩,就比如伴我度过高考的赛车游戏:

一切都是方块,所谓的赛车也只是四个方块。

  第一步,绘制对象:

用函数drawcar()画赛车,drawway(n)画跑道的第n层。

  第二步,承受控制:

Form的KeyPreview属性要设为true,在Form_KeyPress函数中通过改变全局变量cx来控制赛车的位置。

  第三步,游戏循环:

作为即时游戏,必须要有一个Timer,并在其事件Timer1_Timer()中绘制所有对象和进展碰撞检测。

本例中,绘图局部写在了Timer1_Timer()中,碰撞测试放在了test()中。

……这也是所有即时游戏所共通的框架。

当然,我们往往还是根据具体的设计作一些变通,发挥一些技巧……比如这里设计的跑道是随机产生的的,这就要通过一点技巧以便既让玩家感到挑战,又不至于出现不可逾越的难关……

  下面是全部源代码,窗体上只需放个按钮mand1就行了!

ConstD=100'

方格的宽度

ConstBT=3000'

跑道底部的y坐标

Diml1(22)AsInteger'

每层跑道左边有几个方块

Diml2(22)AsInteger'

每层跑道右边有几个方块

DimcxAsSingle'

赛车的在x轴的位置

 cx=Width/2-3*D/2

 cy=Height-D

 drawcar

 Fori=1To20

  l1(i)=0

  l2(i)=0

  drawway(i)

 Nexti

 Timer1.Enabled=True

PrivateSubdrawcar()

 Line(cx,BT-100)-Step(3*D,D),BackColor,BF

 Line(cx+D,BT-200)-Step(D,D),BackColor,BF'

先擦

 Line(cx,BT-100)-Step(3*D,D),RGB(225,0,0),BF

 Line(cx+D,BT-200)-Step(D,D),RGB(225,0,0),BF

PrivateSubdrawway(n)

 Line(Width/2-3*D/2-2*D,BT-n*D)-Step(7*D,D),BackColor,BF

'

先擦后画

 Line(Width/2-3*D/2-2*D,BT-n*D)-Step(l1(n)*D,D),,BF

 Line(Width/2-3*D/2+5*D,BT-n*D)-Step(-l2(n)*D,D),,BF

PrivateSubForm_KeyPress(KeyAsciiAsInteger)

 SelectCaseKeyAscii

  CaseAsc("

a"

),Asc("

A"

   cx=cx-D

s"

S"

   cx=cx+D

 EndSelect

 Randomize

 Fori=1To19

  l1(i)=l1(i+1)

  l2(i)=l2(i+1)

 Do

  l1(20)=Int(Rnd*5)

  l2(20)=Int(Rnd*5)

 LoopUntil((l1(20)+l2(20)<

=4)And(l1(20)-l1(19)<

=1)And_

(l2(20)-l2(19)<

=1)And(l1(19)+l2(20)<

=4)And_

(l1(20)+l2(19)<

=4))'

这里生成新一层跑道,

注意要筛去玩家不可能通过的情况!

drawway(20)

以上画出跑道

 test

PrivateSubtest()

 If3.5*D-Width/2+cx<

l1

(1)*DThenTimer1.Enabled=False

 If3.5*D-Width/2+cx+D<

l1

(2)*DThenTimer1.Enabled=False

 If3.5*D-(cx+3*D-Width/2)<

l2

(1)*DThenTimer1.Enabled=False

 If3.5*D-(cx+2*D-Width/2)<

l2

(2)*DThenTimer1.Enabled=False

相信不少读者都看过央视的《水浒》吧,林冲、武松、李逵等英雄好汉的音容笑貌仿佛还浮现在我的眼前,那么108将中你最喜欢谁呢?

我做了一个小程序来让电脑猜想你的心思,程序界面如下列图。

  为了简化问题,我选择了其中的27将,将他们分成3组,每组9人。

如果你最喜欢其中的一个〔比如史进〕,他在第一组出现了,那么就按下按钮“第一组〞。

然后这27将会重新排列顺序,你再找史进在哪一组,比如发现他在第二组,就按下按钮“第二组〞,画面中的人物次序会再次打乱,再找史进所在组别……最多3次,电脑将会猜出你心中的英雄!

  知道了玩法,下面我将介绍程序是如何实现的:

  一、猜想的奥妙——推算原理

  猜想的原理其实也不复杂,我们来模拟一下猜想的过程大家就清楚了。

程序初始化时是把1~27将随机打乱分别放入PageControl控件的三个选项卡中,每个选项卡放9X图片。

点击一次按钮后其实不是盲目地将顺序打乱,而是进展了筛选,把有用的图片〔就是点选的那组的9X图片〕筛选出来平均分配到PageControl控件的三个选项卡中,再把不需要的图片集中起来平均分配到PageControl控件的三个选项卡中,最后在各个选项卡中把有用的、无用的图片随机打乱再次重新排列显示出来,从而完成猜想。

用表1来说明:

点击按钮的次数选项卡1选项卡2选项卡3

1333

2111

3000

  具体讲,当第一次按下按钮时,表示你相中的图片在其中一个选项卡的9X图片内。

于是把这9X图片均分成3份,每份3X,分别送入3个选项卡,其余的图片就不做考虑了。

当第二次按下按钮时,表示你相中的图片在其中一个选项卡的3X图片内,于是把这3X图片均分成3份,每份1X,分别送入3个选项卡,当第三次按下按钮时,表示你相中的图片在其中一个选项卡的

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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