Skip to content

用Qt编写的FlappyBird游戏,实现了点击鼠标或按空格切换小鸟颜色且可以穿墙

License

Notifications You must be signed in to change notification settings

ohhorange/FlappyBird-1.5-exe

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlappyBird-1.5-exe

用Qt编写的FlappyBird游戏,实现了点击鼠标或按空格切换小鸟颜色且可以穿墙

项目介绍

2018.06 FlappyBird游戏的功能更新 组长

➢ 项目描述:将在网上找到的用Qt编写的FlappyBird游戏进行再开发。

➢ 负责部分:给小鸟增加技能,在游戏中点击鼠标右键或空格切换小鸟颜色,达到不同的无敌状态,可以穿过柱子一定时间而不判定碰撞。

➢ 实现方式:小鸟死亡模块通过使用QT中的!collidingItems().isEmpty()语句,当小鸟的坐标与指定坐标相重合时即判定死亡。死亡后执行死亡动画部分代码,并且进入结算页面模块。具体功能是优先判断小鸟的状态是普通状态还是无敌状态,普通状态下判定小鸟的坐标是否与柱子或地面重合,而无敌状态时则取消对柱子的碰撞判定,只判断坐标是否与地面重合(即y轴坐标是否大于某一数值)。

代码主要实现思路

小鸟死亡模块通过使用QT中的语句!collidingItems().isEmpty(),当小鸟的坐标与指定坐标相重合时即判定死亡。死亡后执行死亡动画部分代码,并且进入结算页面模块。具体功能是优先判断小鸟的状态是普通状态还是无敌状态,普通状态下判定小鸟的坐标是否与柱子或地面重合,而无敌状态时则取消对柱子的碰撞判定,只判断坐标是否与地面重合(即y轴坐标是否大于某一数值)。

小鸟的碰撞判定可以用collidingItems().isEmpty()进行判定,而一旦触发死亡判定,则触发成员函数birdDie(),通过该成员函数对部分变量进行改变以及向部分计时器传递信号从而进入结算页面模块。

游戏界面

image

Flappybird 版本变更,在flappybird版本变更模块图和流程图文件夹中的word文件,双击可以演示游戏画面

图片演示需要等待8s左右

1.0版本 1.实现了按左键小鸟飞行的功能 2.柱子随时间随机生成 3.死亡后显示最高分和当前分

1.1版本变更 1.更改显示界面宽度 2.更改死亡后的最高分和现有分的显示页面

1.2版本变更 1.增加技能,右键变身蓝色,可穿过柱子,但是按一次右键后不会还原,一直无敌状态 2.已知bug,无敌状态下碰到地面不会死亡,且下边界没有限制作用

1.3版本变更 1.修复无敌状态下碰地面不死的bug

1.4版本变更 1.更改界面背景和初始背景提示右键可以使用技能,小鸟初始颜色变为初始蓝实用技能红,柱子颜色为红绿相间 2.小鸟技能改为1s持续时间 3.限定技能使用次数为3次

1.5版本变更 1.增加黄和黑两种颜色的皮肤,按一次空格为黄色,拥有六次穿墙技能,再按一次为黑色,拥有9次穿墙技能

流程图

image

About

用Qt编写的FlappyBird游戏,实现了点击鼠标或按空格切换小鸟颜色且可以穿墙

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.2%
  • C 6.3%
  • QMake 1.5%