热门标签 | 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岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在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创建线程可能更加高效。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
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社区 版权所有