实战项目:VB实现小鸟快跑小游戏

文章目录:

一:效果演示

二:实现思路

三:代码实现

form1

效果图

代码

form2

效果图

代码


一:效果演示

效果图◕‿◕✌✌✌ 

代码下载

二:实现思路

窗口1 就是实现窗口的跳转和关闭窗口2 1.先添加背景图片、小鸟、障碍物、timer、分数显示2.小鸟2.1 放好小鸟的位置,让它自己不停的下降2.2 通过键盘、鼠标单击双击改变top让小鸟上升3.障碍物3.1 每四个为一组,上面和下面一样的3.2 让每一个到左边的距离递减从而移动3.3 每出界一个障碍物,改变它的位置,让它在后面显示3.4 后面改变位置的障碍物,也通过随机函数改变高度4.有变动的都在timer里面控制5.如果碰到障碍物就退出游戏5.1 看是否相交来判断小鸟到左边的位置 与 障碍物到左边的距离小鸟的高度       与 障碍物的height/top5.2 若相交事件监听关闭弹出对话框提示,并显示分数关闭窗口2,跳转到开始游戏的窗口16.工具箱右键添加音乐url:G:\Game\BirdClass\game.mp3放在主目录里面,不然可能识别不出来

三:代码实现

form1

效果图

代码

Option ExplicitPrivate Sub Command1_Click()Form1.Visible = FalseForm2.Visible = True
End SubPrivate Sub Command2_Click()End
End SubPrivate Sub Command3_Click()Dim rule As Stringrule = MsgBox("通过按键盘空格、鼠标单击或双击控制小鸟。如果触碰到障碍则游戏结束!", vbQuestion, "游戏规则说明:")
End SubPrivate Sub Form_Load()End Sub

form2

效果图

代码

Option Explicit
Dim score As IntegerPrivate Sub Form_Click()bird.Top = bird.Top - 800   '控制鸟
End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = Asc(" ") Then bird.Top = bird.Top - 800  '控制鸟,键盘空格高度上升
End SubPrivate Sub Image3_Click()End SubPrivate Sub Form_Load()'G:\Game\BirdClass\game.mp3'WindowsMediaPlayer1.URL = App.Path & "/G:/Game/BirdClass/game.mp3"
End SubPrivate Sub Label1_Click()Label1.Visible = FalseTimer1.Enabled = TrueEnd SubPrivate Sub Label1_DblClick()bird.Top = bird.Top - 800   '控制鸟
End SubPrivate Sub Timer1_Timer()'鸟的位置bird.Top = bird.Top + 400'上面移动shang1.Left = shang1.Left - 80shang2.Left = shang2.Left - 80shang3.Left = shang3.Left - 80shang4.Left = shang4.Left - 80score = score + 1Label2.Caption = score'下面移动xia1.Left = shang1.Leftxia2.Left = shang2.Leftxia3.Left = shang3.Leftxia4.Left = shang4.Left'上面变动If shang1.Left + shang1.Width < 0 Then  '出界了shang1.Left = shang4.Left + shang4.Width + 800  '加一栏Randomizeshang1.Height = Int(Rnd * 3000 + 800)   '改变高度End IfIf shang2.Left + shang2.Width < 0 Thenshang2.Left = shang1.Left + shang1.Width + 800Randomizeshang2.Height = Int(Rnd * 3000 + 800)End IfIf shang3.Left + shang3.Width < 0 Thenshang3.Left = shang2.Left + shang2.Width + 800Randomizeshang3.Height = Int(Rnd * 3000 + 800)End IfIf shang4.Left + shang4.Width < 0 Thenshang4.Left = shang3.Left + shang3.Width + 800Randomizeshang4.Height = Int(Rnd * 3000 + 800)End If'下面变动xia1.Top = shang1.Height + 3500xia2.Top = shang2.Height + 3500xia3.Top = shang3.Height + 3500xia4.Top = shang4.Height + 3500'碰撞'上面超出If bird.Left + bird.Width > shang1.Left And bird.Top < shang1.Height ThenTimer1.Enabled = FalseDim a1 As Stringa1 = MsgBox("非常遗憾,本局游戏 您输了哦!" + "您的得分为:" + Str(score) + "分", vbExclamation, "尊敬的玩家您好!")Form1.ShowForm2.HideEnd IfIf bird.Left + bird.Width > shang2.Left And bird.Top < shang2.Height ThenTimer1.Enabled = FalseDim a2 As Stringa2 = MsgBox("非常遗憾,本局游戏 您输了哦!" + "您的得分为:" + Str(score) + "分", vbExclamation, "尊敬的玩家您好!")Form1.ShowForm2.HideEnd IfIf bird.Left + bird.Width > shang3.Left And bird.Top < shang3.Height ThenTimer1.Enabled = FalseDim a3 As Stringa3 = MsgBox("非常遗憾,本局游戏 您输了哦!" + "您的得分为:" + Str(score) + "分", vbExclamation, "尊敬的玩家您好!")Form1.ShowForm2.HideEnd If'下面超出If bird.Left + bird.Width > xia1.Left And bird.Top > xia1.Top ThenTimer1.Enabled = FalseDim b1 As Stringb1 = MsgBox("非常遗憾,本局游戏 您输了哦!", vbExclamation, "尊敬的玩家您好!")Form1.ShowForm2.HideEnd IfIf bird.Left + bird.Width > xia2.Left And bird.Top > xia2.Top ThenTimer1.Enabled = FalseDim b2 As Stringb2 = MsgBox("非常遗憾,本局游戏 您输了哦!", vbExclamation, "尊敬的玩家您好!")Form1.ShowForm2.HideEnd IfIf bird.Left + bird.Width > xia3.Left And bird.Top > xia3.Top ThenTimer1.Enabled = FalseDim b3 As Stringb3 = MsgBox("非常遗憾,本局游戏 您输了哦!", vbExclamation, "尊敬的玩家您好!")Form1.ShowForm2.HideEnd IfEnd Sub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/90842.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS详细基础(三)复合选择器

前两章介绍了CSS中的基础属性&#xff0c;以及一些基础的选择器&#xff0c;本贴开始介绍复合选择器的内容~ ​ 在 CSS 中&#xff0c;可以根据选择器的类型把选择器分为基础选择器和复合选择器&#xff0c;复合选择器是建立在基础选择器之上&#xff0c;对基本选择器进行组合形…

ElementUI之动态树+数据表格+分页

目录 前言 一.ElementUI之动态树 1.前端模板演示 2.数据绑定 2.1 通过链接获取后台数据 2.2 对链接进行绑定 2.3添加动态路由 2.4 配置路由 3.效果演示 二.数据表格动态分页 1.前端模板 2.通过JS交互获取后端数据 3 效果演示 前言 Element UI 是一个基于 Vue.js 的开…

IDEA Debug技巧大全,看完就能提升工作效率

作者简介 目录 1.行断点 2.方法断点 3.异常断点 4.字段断点 5.条件表达式 1.行断点 行断点就是平时我们在代码行旁边单击鼠标打上的断点&#xff0c;这个没有什么好说的。关键点在于很多人不知道的&#xff0c;行断点其实是可以右击选择是对改行的全部调用都生效&#xf…

缓存一致性(cache coherency)解决方案:MESI 协议状态转换详解

MESI 协议 一&#xff0c;MESI状态释义二&#xff0c;MESI状态转换1 Invalid after Reset2, Invalid > Exclusive3, Exclusive > Modified4 Modified > Shared, Invalid > Shared5 Shared > Invalid, Shared > Modified 三&#xff0c;状态转换场景总结Inval…

最新影视视频微信小程序源码-带支付和采集功能/微信小程序影视源码PHP(更新)

源码简介&#xff1a; 这个影视视频微信小程序源码&#xff0c;新更新的&#xff0c;它还带支付和采集功能&#xff0c;作为微信小程序影视源码&#xff0c;它可以为用户 提供丰富的影视资源&#xff0c;包括电影、电视剧、综艺节目等。 这个小程序影视源码&#xff0c;还带有…

Vue之ElementUI实现登陆及注册

目录 ​编辑 前言 一、ElementUI简介 1. 什么是ElementUI 2. 使用ElementUI的优势 3. ElementUI的应用场景 二、登陆注册前端界面开发 1. 修改端口号 2. 下载ElementUI所需的js依赖 2.1 添加Element-UI模块 2.2 导入Element-UI模块 2.3 测试Element-UI是否能用 3.编…

IOTE 2023盛况回顾,美格智能聚连接之力促数字新生长

9月20~22日&#xff0c;IOTE国际物联网展深圳站在深圳国际会展中心正式召开。本届展会以“IoT构建数字经济底座”为主题&#xff0c;聚焦物联网技术助推数字经济发展的核心动力。美格智能携前沿技术成果亮相展会&#xff0c;与参展观众深入交流。 展会上&#xff0c;美格智能带…

SpringCloud Gateway--Predicate/断言(详细介绍)中

&#x1f600;前言 本篇博文是关于SpringCloud Gateway–Predicate/断言&#xff08;详细介绍&#xff09;中&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以…

electron之快速上手

前一篇文章已经介绍了如何创建一个electron项目&#xff0c;没有看过的小伙伴可以去实操一下。 接下来给大家介绍一下electron项目的架构是什么样的。 electron之快速上手 electron项目一般有两个进程&#xff1a;主进程和渲染进程。 主进程&#xff1a;整个项目的唯一入口&…

大数据flink篇之一-基础知识

一、起源 2010至2014年间&#xff0c;由柏林工业大学、柏林洪堡大学和哈索普拉特纳研究所联合发起名Stratosphere的研究项目。2014年4月&#xff0c;项目贡献给Apache基金会&#xff0c;成为孵化项目。更名为Flink2014年12月&#xff0c;成为基金会顶级项目2015年9月&#xff…

分析一段js加密代码

源代码 (function(){var KBP,EbW482-471;function wHY(r){var y2043987;var lr.length;var a[];for(var g0;g<l;g){a[g]r.charAt(g)};for(var g0;g<l;g){var vy*(g289)(y%39401);var ty*(g287)(y%31258);var xv%l;var pt%l;var ma[x];a[x]a[p];a[p]m;y(vt)%2251814;};re…

搭建自己的搜索引擎之五

一、前言 接上文 搭建自己的搜索引擎之四&#xff0c;下面继续介绍茴香豆茴字的另外两种写法。 二、Jest Jest是ES的Java Http Rest客户端&#xff0c;它主要是为了弥补以前ES自有API缺少HttpRest接口客户端的不足&#xff0c;但因为现在ES官方已经提供了RestClient ,该项目已…

JIT介绍

JIT全称&#xff1a;Just in time。中文译为&#xff1a;即时的、实时的。 JVM中的这项技术名为&#xff1a;实时编译技术&#xff0c;也叫即时编译技术。就是在java程序运行的过程中&#xff0c;将字节码编译为机器码运行在本地&#xff0c;而不是通过JVM解释运行&#xff08;…

C++ -- 特殊类设计

目录 设计一个类&#xff0c;不能被拷贝 C98的做法 C11的做法 设计一个类&#xff0c;只能在堆上创建对象 实现方式1 实现方式2 设计一个类&#xff0c;只能在栈上创建对象 实现方式1 方式1的优化 实现方式2 设计一个类&#xff0c;不能被继承 设计模式 什么是设计…

计算机竞赛 深度学习实现行人重识别 - python opencv yolo Reid

文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习的行人重识别算法研究与实现 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c…

28 drf-Vue个人向总结-1

文章目录 前后端分离开发展示项目项补充知识开发问题浏览器解决跨域问题 drf 小tips设置资源root目录使用自定义的user表设置资源路径media数据库补充删除表中数据单页面与多页面模式过滤多层自关联后端提交的数据到底是什么jwt token登录设置普通的 token 原理使用流程解析 jw…

wallis匀色算法、直方图匹配、颜色转移方法比较

算法原理 这三种方法应该是比较基础的匀色处理算法 三个算法的原理比较简单&#xff0c;具体原理大家可以自己百度 &#xff08;1&#xff09;wallis匀色原理主要在于利用Wallis滤波器使原始图像的均值和标准差与参考影像相当&#xff0c;从而使原始影像和参考影像具有相近的色…

WebPack-打包工具

从图中我们可以看出&#xff0c;Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件&#xff0c;减少了页面的请求. 下面举个例子 &#xff1a; main.js 我们只命名导出一个变量 export const name"老六"index.js import { name } from "./tset/…

第P7周—咖啡豆识别(1)

数据集及wen件目录介绍&#xff1a; 数据集&#xff1a;工作台 - Heywhale.com 一、前期工作 1.1 数据详情 import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, datasets import os,…

聊聊KISS(Keep It Simple, Stupid)原则

文章目录 1. 前言2. KISS原则的几项描述3. KISS原则和奥卡姆剃刀原则区别 1. 前言 KISS原则&#xff0c;是Keep It Simple, Stupid的缩写&#xff0c;翻译成中文就是“保持简单&#xff0c;愚蠢的人也能懂”。这是一种鼓励简单设计的设计原则。 KISS原则的主要思想是&#x…