下面添加一个方法,让主角跳跃起来

    properties: {...},代码块的下面添加setJumpAction的方法,代码如下

    1. setJumpAction: function () {
    2. // 跳跃上升
    3. var jumpUp = cc.moveBy(this.jumpDuration, cc.v2(0, this.jumpHeight))
    4. .easing(cc.easeCubicActionOut());
    5. // 下落
    6. var jumpDown = cc.moveBy(this.jumpDuration, cc.v2(0, -this.jumpHeight))
    7. .easing(cc.easeCubicActionIn());
    8. // 不断重复
    9. return cc.repeatForever(cc.sequence(jumpUp, jumpDown));
    10. }

    在Cocos Creator中,动作包括节点的

    • 位移
    • 缩放
    • 旋转

    例如,在上面的代码中,moveBy()方法的作用是在规定的时间内移动指定的一段距离

    第一个参数是之前定义主角属性中的跳跃时间
    第二个参数是一个Vec2(表示2D向量和坐标)类型的对象

    后面还通过链式调用了easing(cc.easeCubicActionIn())方法,这个方法可以让动作呈现为一种缓慢的运动

    接下来在onLoad()方法里调用刚添加的setJumpAction()方法,然后执行runAction开始动作,代码如下

    1. onLoad: function () {
    2. // 初始化跳跃动作
    3. this.jumpAction = this.setJumpAction();
    4. this.node.runAction(this.jumpAction);
    5. },

    onLoad()方法会在场景加载后立刻执行

    通常会把初始化相关的操作和逻辑都放在这里

    上面代码中将循环跳跃的动作传给了jumpAction变量

    之后调用这个组件挂载的节点下的runAction()方法,传入循环跳跃的Action,从而让节点(主角)一直跳跃

    保存脚本,单击编辑器上的“预览”按钮,在浏览器里运行游戏,可以看到主角小猫跳个不停