热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

飞翔_飞翔的小鸟

篇首语:本文由编程笔记#小编为大家整理,主要介绍了飞翔的小鸟相关的知识,希望对你有一定的参考价值。一、项目设计(1.0版)  

篇首语:本文由编程笔记#小编为大家整理,主要介绍了飞翔的小鸟相关的知识,希望对你有一定的参考价值。


一、项目设计(1.0版)   

制作一个飞翔的小鸟游戏,玩家控制一只胖乎乎的小鸟,跨越由各种不同长度水管所组成的障碍,每跨过一个障碍得分,如果 碰到水管或掉落地面,则游戏失败。技术图片

 

 

 二、设计与制作(1.0版) 下载飞翔的小鸟素材

1、实现功能:

(1)第一个屏幕screen1作为启动屏幕,实现点击屏幕开始进入游戏。

        游戏主要在第二屏幕FlappyBird实现。

(2)小鸟扇动翅膀,以一定的加速度做自由落体运动。用户点击屏幕后,小鸟将获得一个向上的恒定速度。小鸟在上升下坠过程中,需要模拟抬头和低头动作。

(3)屏幕上随机出现上下水管组合,并以恒定速度向左移动,模拟小鸟向前飞行效果;

        上下水管的Y坐标和间距随机每次随机变化。小鸟跨过水管则得1分(即是水管移动到左边得1分)。

(4)如果小鸟触碰到水管或掉落触碰到地面,则游戏结束,显示得分。

2、组件界面设计

(1)screen1屏幕

  本屏幕为启动画面,点击击之后打开FlappyBird屏幕。

技术图片 技术图片

技术图片

 

 

(2)增加FlappyBird屏幕

添加组件:画布1、图像精灵6个、计时器1、对话框1

技术图片

部分组件属性(参考设置): 

 其中屏幕FlappyBird标题用“飞翔的小鸟v1.0”+“姓名” ;4个水管分别设置图片、取消可见性。

技术图片  技术图片  技术图片  技术图片  技术图片  技术图片  技术图片

3、逻辑设计(编程)

(1)创建变量:

变量【图片序号】为小鸟几张图片的变化次序;  变量【小鸟Y1】为小鸟Y坐标的变化量;

变量【小鸟角度】为小鸟上升抬头角度值;变量【水管1X】【水管2X】分别为2组水管的X坐标值;

变量【水管1激活】【水管2激活】 分别为2组水管 是否要出现在画面移动的判断值。

技术图片

技术图片

技术图片

(2)创建“开始游戏”过程,进行游戏参数初始化,小鸟的X,Y坐标、方向,地面的Y坐标。

技术图片

技术图片

(3)创建“小鸟扇动翅膀”过程,主要实现小鸟精灵的动画效果(扇动翅膀),结合计时器实现循环执行。(可选)

技术图片

(4)使用计时器调用“小鸟扇动翅膀”过程,实现动画效果。调用“小鸟移动”过程在第(5)步完成后添加。

技术图片

(5)创建“小鸟移动”过程,结合计时器,每隔一段时间,小鸟改变Y坐标实现移动,并调整方向(低头)。

技术图片

技术图片

(6)画布被触碰 代码。点击画布,使小鸟抬头上升,并发出翅膀扇动声音。

技术图片

↑ 以上功能,通过计时器调用“小鸟移动”过程实现,小鸟以一定的加速度做自由落体运动,每点击一次画布则小鸟做抬头上升,不点击则开始缓慢低头下坠。

----先连接AI伴侣进行测试,能否实现这部分功能。

↓ 接下来要实现2组水管交替移动,模拟前进的动态效果。

(7)创建“水管1移动”过程,“水管2移动”过程。这两部分类似,可先做好一个,再复制修改。

技术图片

技术图片

修改“开始游戏”的过程,添加设置【水管1X、水管2X】的初始值为画布宽度。(水管x坐标为画布的最右边)

技术图片

(8)修改计时器的执行代码,实现每隔100毫秒,调用“水管1移动”过程、“水管2移动”过程,实现2组水管向左交替移动, 模拟小鸟向右运动的视觉效果。

技术图片

===先连接AI伴侣进行测试,能否实现2组水管交替移动,模拟前进的动态效果。

(9)创建“随机水管Y坐标”过程。带2个参数“上水管”、“下水管”。

技术图片

这部分程序设计思路的图例说明(下图):

技术图片

(10)修改“水管1移动”过程,“水管2移动”过程

       带参数调用第(9)步的随机水管Y坐标”过程,分别添加到“水管1移动”过程,“水管2移动”过程。

技术图片 技术图片

提示:如果一开始水管1组没有随机生成上下间距,尝试修改“开始游戏”过程,调用“随机水管Y坐标”过程

思考1:此处可能出现bug,水管激活出现时会有位置高度闪动变化的情况,有何解决办法?如何实现?

(11)当小鸟被碰撞 时的代码。即是小鸟碰到水管或地面(精灵),则游戏结束,停止计时器,播放失败声音并显示得分。

技术图片

(12)对话框 选择判断。根据游戏结束 提示对话框的选择,执行相应代码。

技术图片

-------到此, 飞翔小鸟1.0简化版 基本完成,请用AI伴侣进行连接测试。


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了在Oracle数据库中创建序列时如何选择cache或nocache参数。cache参数可以提高序列的存取速度,但可能会导致序列丢失;nocache参数可以避免序列丢失,但在高并发访问时可能导致性能问题。文章详细解释了两者的区别和使用场景。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 计算成像的原理与应用研究
    本文探讨了计算成像的原理与应用研究。首先介绍了小孔成像实验和软件方面的相关内容。随后从傅里叶光学的角度简单谈了成像的过程。成像是观测样品分布的一种方法,通过成像系统接收光的强度来呈现图像。视网膜作为接收端接收到的图像实际上是由像元组成的矩阵,每个元素代表相应位置像元接收光的强度。大脑通过对图像的分析,得出一系列信息,如识别物体、判断距离等。计算成像是一种采集记录系统,通过处理数据得到样品分布与像的对应关系,用于后续问题的分析。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 图片复制到服务器 方向变了_双服务器热备更新配置文件步骤问题及解决方法
    本文介绍了在将图片复制到服务器并进行方向变换的过程中,双服务器热备更新配置文件所出现的问题及解决方法。通过停止所有服务、更新配置、重启服务等操作,可以避免数据中断和操作不规范导致的问题。同时还提到了注意事项,如Avimet版本的差异以及配置文件和批处理文件的存放路径等。通过严格执行切换步骤,可以成功进行更新操作。 ... [详细]
  • 1.RoIPoolingRoIPooling顾名思义对Roi进行Pooling操作,主要用于目标检测任务。RoI(Regionofinterest&# ... [详细]
  • C# WPF自定义按钮的方法
    本文介绍了在C# WPF中实现自定义按钮的方法,包括使用图片作为按钮背景、自定义鼠标进入效果、自定义按压效果和自定义禁用效果。通过创建CustomButton.cs类和ButtonStyles.xaml资源文件,设计按钮的Style并添加所需的依赖属性,可以实现自定义按钮的效果。示例代码在ButtonStyles.xaml中给出。 ... [详细]
author-avatar
卫宇欢试试
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有