3

スプライトのアニメーションを切り替える方法はありますか? たとえば、地面に触れているスプライトがありますが、地面から離れたときに、地面にいるときに再生されるアニメーションとは異なるアニメーションを再生したいと考えています。ただし、再び地面に触れたときに最初のアニメーションを再生することも必要です。私は基本的に次のようなものが欲しいです:

if (sprite.body.touching.down === false) {
    sprite.animations.toggleAnimation("different_animation");
} else {
    sprite.animations.play("original_animation");
}

Phaser でこれを行う簡単な方法はありますか?

4

3 に答える 3

5

必要な数のアニメーションをスプライトに追加し、キーを使用してそれらを再生できます。例えば:

sprite.animations.add('jump', [0,1,2,3]);
sprite.animations.add('crouch', [4,5]);
sprite.animations.add('walk', [6,7,9,10,11]);

次に、キーでアニメーションを再生できます。sprite.play('walk')

于 2014-08-04T17:42:25.120 に答える
1

これに対する解決策を見つけたようです。私が必要としていたのは、スプライトに別のテクスチャをロードすることであり、必ずしも別のアニメーションを再生する必要はありません。あまりコミュニケーションが取れていなかったと思います。基本的に、私が言っているのはこの例です:

http://phaser.io/examples/v2/animation/change-texture-on-click

于 2014-08-05T19:59:51.477 に答える
0

物事を簡単にするための私のアプローチは次のとおりです。

 animation_arr = ['idle', 'walk', 'jump', 'idle_towel', 'walk_towel', 'jump_towel' ];
 for(var i=0; i < animation_arr.length; i++){
    player.animations.add(animation_arr[i], [0+(i*10), 1+(i*10), 2+(i*10), 3+(i*10), 4+(i*10), 5+(i*10), 6+(i*10), 7+(i*10), 8+(i*10), 9+(i*10)], 10, true);
 }
于 2015-04-25T17:26:30.050 に答える