下面添加一个方法,让主角跳跃起来
在properties: {...},
代码块的下面添加setJumpAction
的方法,代码如下
setJumpAction: function () {
// 跳跃上升
var jumpUp = cc.moveBy(this.jumpDuration, cc.v2(0, this.jumpHeight))
.easing(cc.easeCubicActionOut());
// 下落
var jumpDown = cc.moveBy(this.jumpDuration, cc.v2(0, -this.jumpHeight))
.easing(cc.easeCubicActionIn());
// 不断重复
return cc.repeatForever(cc.sequence(jumpUp, jumpDown));
}
在Cocos Creator中,动作包括节点的
- 位移
- 缩放
- 旋转
例如,在上面的代码中,moveBy()
方法的作用是在规定的时间内移动指定的一段距离
第一个参数是之前定义主角属性中的跳跃时间
第二个参数是一个Vec2(表示2D向量和坐标)类型的对象
后面还通过链式调用了easing(cc.easeCubicActionIn())
方法,这个方法可以让动作呈现为一种缓慢的运动
接下来在onLoad()
方法里调用刚添加的setJumpAction()
方法,然后执行runAction
开始动作,代码如下
onLoad: function () {
// 初始化跳跃动作
this.jumpAction = this.setJumpAction();
this.node.runAction(this.jumpAction);
},
onLoad()
方法会在场景加载后立刻执行
通常会把初始化相关的操作和逻辑都放在这里
上面代码中将循环跳跃的动作传给了jumpAction变量
之后调用这个组件挂载的节点下的runAction()
方法,传入循环跳跃的Action,从而让节点(主角)一直跳跃
保存脚本,单击编辑器上的“预览”按钮,在浏览器里运行游戏,可以看到主角小猫跳个不停