项目地址
启动场景
ui部分
- canvas 添加CameInController脚本
- bg (bg1, bg2) 是屏幕,屏幕外,两张背景图片
- button 使用了button控件,点击事件为CameInController上的startGame方法,作用是切换场景
bird 添加animation动画
- 拖动图片到场景编辑器
- 属性选择器 添加组件->其他组件->Animation
- 切换控制台,切换到动画编辑器
- 属性列表里添加
cc.Sprit.spritFrame
,然后把不同图片拖进不同帧里,wrapMode选择Loop
5.Default Clip里也设置刚才的动画,现在小鸟就能自动播放动画了
游戏主体场景
- Canvas 添加CanvasController脚本
- 绑定小鸟
- 添加鼠标按下的监听器,里面是调用bird组件里的fly方法
小鸟
- 添加BirdController脚本
2. 然后添加刚体和碰撞体
3. BirdController里的onBeginContact生命周期回调方法,可以检测碰撞,在开始碰撞时触发,通过管道加分,否则显示失败按钮,并暂停场景
4. fly方法this.node.getComponent(cc.RigidBody).linearVelocity
可以调整重力加速器,cc.v2(0,0),防止小鸟飞出屏幕,没有到屏幕就有一个向上的加速度
5. resume是点击重启按钮,清空分数,调整重启按钮,调整管道,调整小鸟,最后开启场景
管道
- 给管道父级添加PipeController脚本
2.update生命周期,里面就是管道,每帧,管道向左移动,直到x小于某个值(移动出屏幕外了),就把管道移动回来,管道高度在一定范围内随机
地面
- 逻辑也是一样,update生命周期,向左一点,超过一个屏幕后返回之前的地方
分数
- 就是当小鸟移动过碰撞器的时候,更新分数,更新label显示的分数
原文链接:https://juejin.cn/post/7347944868122247195 作者:成长ing12138