admin 管理员组

文章数量: 1184232


2024年1月18日发(作者:scanf能输入小数吗)

第十一课-Flappy Bird

本节课作品视频

一、学习目标

这节课我们做一款非常流程的小游戏Flappy Bird,玩法非常简单,按住空格键让角色躲避柱子,看谁躲避的柱子最多,坚持时间最长。学习目标:

1、 通过坐标偏移,实现角色的移动。

2、 如何控制小鸟飞行及实现重力效果。

二、程序设计

程序分析 : 我们分析下这款游戏,整个游戏是横屏游戏,屏幕是由右往左移动,仔细看下,小猫的飞行状态其实只是角色的变化,实际位置只是上下移动,而实际移动的角色为柱子。

1、 角色设计:通过我们分析,这节课需要3个角色,分别为两根竖着的柱子和飞翔的小猫,我们选择Cat Flying角色、柱子为Paddle,然后在复制一份Paddle,这样三个角色准备好了!

2、 Cat Flying编程:这个角色的实现效果,始终在屏幕的左侧位置,当按下空格键的时候向上移动,并换更换造型,不按的时候则掉落到下方。一直往下掉落,即Y坐标不停减少,如果按下空格键,Y坐标增加。通过这个分析我们是不是能出来了?在这里要注意Y坐标减少的数值要小于Y坐标增加的数字,否则飞不起来哦。但是也不能太大,否则一下就到飞到上面了!大家来试下吧!

3、 下面我们看下两个柱子,这也是这节课的难点。我们先把柱子放大些,大小设置为200,先把柱子移动到最右侧,右侧X坐标为240,两根柱子是从右方往左移动,每次移动的时候长短都会不同。我们先把两根柱子的方向调整下

方向如图,调整到0度方向。调整完我们把两根柱子摆放到右侧边缘

图1 图2

从以上两图能看出什么?首先柱子的X坐标是不是一样的?而唯一区别是两根柱子的Y坐标有变化了,上面的柱子上下移动有个距离,这个距离是随机的,同理下面的也是。是不是有思路了!

图1中柱子的Y坐标为220,图2中的Y坐标为167,我们让它在这个区间变化,通过随机数实现坐标在这个区间变化。下面的也类似,自己写下吧!

,也就是Y柱子往左移动,也就是X坐标不停运动,也非常简单,代码如下:

测试下,柱子停在了左侧边缘,我们继续优化,让柱子再回到右侧,小朋友想到了,如果碰到边缘再回到右侧位置?这里我们不能用碰到边缘,因为右侧一出来就已经碰到右侧边缘了。

不使用碰到边缘,那用哪个指令呢?我们可以通过坐标大小来判断,当柱子移动到最左侧的时候,X坐标小于某一个值,就可以让它返回去了。这个值不是固定的-240,从下图中看下:

现在上面柱子在左侧的坐标为-249,我们可以通过X坐标小于-240来判断,让它在返回到右侧开始位置。新指令,运算模块里的。代码如下

4、 这样上面柱子移动就完成了,下面的柱子小朋友们自己尝试下。这里一定要保证移动速度一致。那么如何增加积分呢?我们需要定义一个变

量,每次柱子消失增加一分,也就是X坐标小于-240的时候增加积分!知道放哪里了吧!

这节课就讲到这里,有问题的留言!大家在学的过程中需要多动脑,尽量在看完教程后再做,不要抄代码哦!


本文标签: 柱子 移动 角色 坐标 边缘