1

私は Cocos2d を初めて使用し、Cocos2d-HTML5 のアニメーションに問題があります。

以下は私のスプライトのコンストラクター関数です。TexturePackerplistでファイルを生成しました。アニメーションを再生して無限に繰り返したいです。次の方法でアニメーションを作成することで、一度再生できました。

var animation = new cc.Animation(frames, 0.2);

しかし、ループ数を3番目のパラメーターとして渡すと、エラーが発生しますUncaught TypeError: Object #<Class> has no method 'getDelayUnits'

ctor: function (position) {
    this._super();

    var cache = cc.SpriteFrameCache.getInstance();
    cache.addSpriteFrames(s_dogList, s_Dog);

    var frames = [];
    for (var i = 1; i <= this.NUMBER_OF_FRAMES; i++) {
        var spriteFrame = cache.getSpriteFrame('dog' + i + '.png');
        frames.push(spriteFrame);
    };
    this.initWithSpriteFrame(frames[0]);

    var animation = cc.Animation.create(frames, 0.2, 100);
    var animate = cc.Animate.create(animation);
    this.runAction(animate);
}

コードを調査したところ、3 つのパラメーター (パラメーター付き) を使用してアニメーションを作成する場合、各フレームをクラスloopsのインスタンスにする必要があることがわかりました。AnimationFrameしかし、2 つのパラメーターのみを渡す場合、フレームはSpriteFrameクラスのインスタンスである必要があります。を使用してアニメーションを作成しAnimationFrame、それを無限に繰り返す方法は?

4

1 に答える 1

1

わかりました私は解決策を見つけました。与えられたアニメーションを永久に繰り返すには、特別な種類のアクションがありcc.RepeatForeverます。次のように書くだけです。

var animation = cc.Animation.create(frames, 0.1),
    actionToRepeat = cc.Animate.create(animation),
    action = cc.RepeatForever.create(actionToRepeat);
于 2014-03-08T14:13:32.507 に答える