Cocos Creator之自定义Action

本文介绍了如何在Cocos Creator中自定义Action,特别是使用TypeScript实现特殊需求,例如让精灵围绕特定点进行圆周运动。通过分析cc.MoveBy的源码,学习自定义Action的基本步骤,并提供了TS实现的详细代码示例,包括计算圆心、调整精灵旋转角度等关键步骤。在实际应用中,可以通过创建实例并运行Action来实现精灵的动态运动效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义Action

学习自定义Action的最好方法是去查看Cocos Creator中常用动作的写法。比如cc.MoveTo继承了cc.MoveBy,而cc.MoveBy则进一步继承了cc.ActionInterval
可以从cocos-creator的引擎源码找到cc.MoveBy的相关定义:

cc.MoveBy = cc.Class({
   
    name: 'cc.MoveBy',
    extends: cc.ActionInterval,

    ctor:function (duration, deltaPos, deltaY) {
   
        this._positionDelta = cc.v2(0, 0);
        this._startPosition = cc.v2(0, 0);
        this._previousPosition = cc.v2(0, 0);

        deltaPos !== undefined && cc.MoveBy.prototype.initWithDuration.call(this, duration, deltaPos, deltaY);	
    }
    ...
})

如果需要自定义Action只需要按照自己的需求仿照cc.MoveBy的定义写一个就行了。如实现cc.ActionInterval类的initWithDurationstartWithTargetupdate方法。「sprite 圆形运动,圆周运动」给出了自定义一个圆周运动的三种方案,其中第一种方案就是集成cc.ActionInterval,自定义Action的方法。这里不再赘述。

特殊需求 - 用TypeScript自定义Action

因为自己做cocos creator时用的ts语言,在写法上与之前提到的略有不同。目的是实现精灵绕某一点旋转一定的角度。

需求

  1. 根据精灵自身旋转角度和给定半径确定精灵圆周运动的圆心。
  2. 在精灵圆周运动过程中自动调整精灵自身的旋转角度。

方案

这里给出实现的源码,并做相关解释。

const {
   ccclass, property} = cc._decorator;

export default class ArcMove extends cc.ActionInterval {
   

    nam
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值