VB实现贪吃蛇小游戏
更新时间:2024-05-11 10:27:01 阅读量: 综合文库 文档下载
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() '向右走
Picture1.Cls '没循环一次就清除上一次画的图像,要不就看不出运动了
Picture1.DrawWidth = 10 '定义画图粗细
b = b + 100 'b每次都加100,画图后坐标就变了 aa(i) = a bb(j) = b
Picture1.PSet (b, a), vbRed '绘制第一个点(红)
For k = 1 To c '此k-for循环从1到c,绘制c个蓝色点
If aa(99) = 0 Then '如果游戏刚开始,以下绘制方法,一开始j=0,j-k为负,bb(j-k)与aa(j-k)数组无效,因此在j<=c时单独绘制 If j <= c And i <= c Then f = 400 - 100 * (k - j)
Picture1.PSet (f, 100), vbBlue Else
Picture1.PSet (bb(j - k), aa(i - k)), vbBlue '其他情况时,蓝点走过红点的轨迹 End If End If
If aa(99) <> 0 Or bb(99) <> 0 Then '如果时j和i运行到99后变为0,则bb(0)为红点时,蓝点必须走bb(99)、bb(98).... If j <= c And i <= c Then
d = 100 - k + j: e = 100 - k + i '此行与以下两行作用就是为了实现蓝点绘制时混合了...bb(0)、bb(99)...的情况 If d >= 100 Then d = d - 100 If e >= 100 Then e = e - 100
Picture1.PSet (bb(d), aa(e)), vbBlue Else
Picture1.PSet (bb(j - k), aa(i - k)), vbBlue End If End If Next k
If b > 4900 Or b < 100 Or a > 4900 Or a < 100 Then '碰墙则重新开始,以下进行了数据重置和清零
j = -1: i = -1: b = 300: a = 100: c = 4: z = 0 '如果碰墙了,j=-1时因为运行完了 后面有j=j+1,这样j就等于0了,把a、b重置
MsgBox (\对不起!您碰墙了!接下来将重新开始游戏!\ For o = 0 To 99
aa(o) = 0: bb(o) = 0 '把aa()、bb()数组中
所有的数清零 Next o End If
If j > c Then '咬尾了就重新开始游戏,以下进行了数据重置和清零 For p = 1 To c
If bb(j) = bb(j - p) And aa(i) = aa(i - p) Then j = -1: i = -1: b = 300: a = 100: c = 4: z = 0
MsgBox (\对不起!您咬尾了!接下来将重新开始游戏!\ For o = 0 To 99
aa(o) = 0: bb(o) = 0 Next o Exit For End If Next p End If
j = j + 1 i = i + 1
If j = 100 Or i = 100 Then j = 0: i = 0 'j不能持续增长,有可能会溢出,现在另j到了100就变0 End Sub
Private Sub Timer2_Timer() '向左走 Picture1.Cls
Picture1.DrawWidth = 10 b = b - 100 aa(i) = a bb(j) = b
Picture1.PSet (b, a), vbRed
For k = 1 To c
If aa(99) = 0 Then
If j <= c And i <= c Then
Picture1.PSet (400 - 100 * (k - j), 100), vbBlue Else
Picture1.PSet (bb(j - k), aa(i - k)), vbBlue End If End If
If aa(99) <> 0 Or bb(99) <> 0 Then If j <= c And i <= c Then
d = 100 - k + j: e = 100 - k + i
If d >= 100 Then d = d - 100 If e >= 100 Then e = e - 100
Picture1.PSet (bb(d), aa(e)), vbBlue Else
Picture1.PSet (bb(j - k), aa(i - k)), vbBlue End If End If Next k
If b > 4900 Or b < 100 Or a > 4900 Or a < 100 Then j = -1: i = -1: b = 300: a = 100: c = 4: z = 0
MsgBox (\对不起!您碰墙了!接下来将重新开始游戏!\ For o = 0 To 99
aa(o) = 0: bb(o) = 0 Next o
Timer2.Enabled = False Timer1.Enabled = True End If
If j > c Then
For p = 1 To c
If bb(j) = bb(j - p) And aa(i) = aa(i - p) Then j = -1: i = -1: b = 300: a = 100: c = 4: z = 0
MsgBox (\对不起!您咬尾了!接下来将重新开始游戏!\ For o = 0 To 99
aa(o) = 0: bb(o) = 0 Next o
Timer2.Enabled = False Timer1.Enabled = True Exit For End If Next p End If
j = j + 1 i = i + 1
If j = 100 Or i = 100 Then j = 0: i = 0 End Sub
Private Sub Timer3_Timer() '向下走 Picture1.Cls
Picture1.DrawWidth = 10 a = a + 100 aa(i) = a
正在阅读:
VB实现贪吃蛇小游戏05-11
2017年中考化学总复习 第1部分 基础知识回顾与能力训练 第21课时 气体的实验室制法研究体验中考训练 精品12-13
正警风严警纪心得体会05-05
潮汕职业技术学院课堂教学设计表5.201-08
雨中即景02-14
中央音乐学院学报12-16
【电子技术应用】_应用_期刊发文热词逐年推荐_2014072505-16
第二章 参考工具书05-14
实验二描述性统计分析过程01-05
人防综合科目考试大纲02-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 贪吃
- 小游戏
- 实现
- 2015年初级社会工作者《工作实务》真题及答案
- 关于解决农村留守儿童的建议
- 地藏经诵读仪规
- 2100AN台式浊度仪使用说明书 - 图文
- 4审计抽样
- 实习相关表格
- 2008浙江行测真题及解析
- 优化乘务组织提高乘务效率(毕业论文)
- 2016年高考地理考点大揭秘:自然地理最新题型综合检测(含答案)
- 中国拉丝模行业市场前景分析预测年度报告(目录) - 图文
- 2015年中考数学第24题专题训练答案
- 20151222宁波市集士港中一片(CX06)控制性详细规划(批后公布)
- 2017年北京市海淀区高三理科上学期数学期中考试试卷
- AIX5安装
- 相互作用复习一 - 图文
- 有关电磁感应的几个小专题
- wifi智能小车毕业论文 - 图文
- 我国会计信息化发展历程、现状及趋势的研究报告书
- 四川省乐山市2018年中考化学真题试题(含答案)
- 2016年4月上海市虹口区初三物理二模试卷(word版 含答案)资料