- 这次我们的任务是控制点击鼠标让小鸟飞起来
- 当游戏刚开始时小鸟就需要开始起飞了,所以我们的需要在startgame中添加一个监听
- 然后创建一个fly功能


- 仔细分析一下飞行动作拆封成两点 1.一个为小鸟头部向上扬起;2.小鸟向上运动
- 我们先来解决小鸟头部向上扬起这个动作,这个动作需要在我们反复点击的同时,小鸟也是反复的上下仰头,所以我们就需要用到sence1中用过的tween

- 1动作解决了,那么2呢,小鸟向上运动这个动作。需要注意的是,这边不能用修改重力来实现这个操作,因为重力是恒定的,修改完后小鸟就一直往上飞,不会掉下来了。
- 这时候我们需要额外给小鸟施加一个作用力velocity,这个力是一次性的

- 完成后我们来看下效果

- 还行把,优化操作可以后面结合整体再调整,接下来我们来看下如何设置障碍物
- 首先还是先加载图片,管道和小鸟一样都是有序列帧的所以加载方式一样

- 在看下原版游戏,分析一下下部操作

- 可以看到,管道分为上下两个,并且是同时出现的,那么上下两个管道应该为一个组,所以我们先添加一个组,放入play场景中。
- 并且要开启body属性
- 这边要注意加载管道要放在加载地板前面,这样就有管道埋入地板的感觉

- 接下来就可以设置管道了,这边需要注意制作管道如果放在update中,没有办法控制生成的间隔时间。
- 所以我们需要在startgame中设置一个计时器

- 然后我们来完成makePipe功能,分析一下
- 上下管道间需要留有空隙,让小鸟通过。我们计算一下得出空隙的合理位置为85-320之间,并且得出上下管道的位置

- 接下来我们添加上下管道

- 接下来我们让管道动起来,给他施加一个x轴的作用力

- 接下来让我们看下目前制作的效果

- 好吧,我知道我好菜,第一个管道都没过。
- 完整代码为:
const game = new Phaser.Game(320,505,Phaser.AUTO,"game")
game.gameStates={
}
game.gameStates.menu=function(){
this.preload=function(){
game.load.image('background',"assets/background.png")
game.load.image('ground',"assets/ground.png")
game.load.spritesheet('bird','assets/bird.png',34,24,3)
game.load.image('title',"assets/title.png")
game.load.image('btnImg',"assets/start-button.png")
}
this.create=function(){
const mybg=game.add.tileSprite(0,0,game.width,game.height,'background')
const ground=game.add.tileSprite(0,game.height-112