3

有没有办法在精灵的动画之间切换?例如,我有一个精灵接触地面,但是当它离开地面时,我希望它播放不同于它在地面上播放的动画。但是,我也希望它在再次接触地面时播放第一个动画。我基本上想要这样的东西:

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

Phaser有一个简单的方法来做到这一点吗?

4

3 回答 3

5

您可以根据需要向 Sprite 添加任意数量的动画,然后使用键播放它们。例如:

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 回答