热门标签 | 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伴侣进行连接测试。


推荐阅读
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 本文详细探讨了Netty中Future及其子类的设计与实现,包括其在并发编程中的作用和具体应用场景。我们将介绍Future的继承体系、关键方法的实现细节,并讨论如何通过监听器和回调机制来处理异步任务的结果。 ... [详细]
  • Win11扩展卷无法使用?解决扩展卷灰色问题的指南
    本文详细介绍了在Windows 11中遇到扩展卷灰色无法使用时的解决方案,帮助用户快速恢复磁盘扩展功能。 ... [详细]
  • 通过与阿里云的合作,牛客网成功解决了跨国视频面试中的网络卡顿问题,为求职者和面试官提供了更加流畅的沟通体验。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • Python实现照片磨皮效果
    本文介绍如何使用Python和OpenCV库来实现照片的磨皮效果,使图片更加平滑并提升整体美感。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
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社区 版权所有