Javascript 仅播放动画精灵表的第一帧
试图添加一个爆炸动画到我的游戏,但由于某种原因,只有第一帧的精灵发挥。Spritesheet已加载到预加载程序中 这是调用动画的函数Javascript 仅播放动画精灵表的第一帧,javascript,phaser-framework,Javascript,Phaser Framework,试图添加一个爆炸动画到我的游戏,但由于某种原因,只有第一帧的精灵发挥。Spritesheet已加载到预加载程序中 这是调用动画的函数 function asteroidCollisionHandler(player, asteroid){ live = lives.getFirstAlive(); if (live) { live.kill(); } explosion = explosions.getFirstExists(false); explosion.reset(play
function asteroidCollisionHandler(player, asteroid){
live = lives.getFirstAlive();
if (live)
{
live.kill();
}
explosion = explosions.getFirstExists(false);
explosion.reset(player.body.x, player.body.y);
explosion.play('explosion', 30, false, false);
if (lives.countLiving() < 1)
{
player.kill();
}
}
预紧器
this.load.spritesheet('explosion', 'images/explode.png', 128, 128, 16);
行
exploations.createMultiple()
仅创建30个精灵,您仍然需要向每个精灵显式添加动画。您可以添加带有名称的动画,也可以选择添加帧等。顺便说一句,我建议对组和动画使用不同的名称,以避免混淆,因此如下所示:
// initialise animations in the Create() function:
for (var i = 0; i < grpexplosions.children.length; i++) {
grpexplosions.children[i].animations.add('animexplode', [0,1,2,3], 30, true, false);
//grpexplosions.children[i].animations.add('animexplode'); // alternatively, leave frames null to use all frames
};
// and then when you need one:
explosion = grpexplosions.getFirstExists(false);
explosion.play('animexplode', 30, false, false);
var framesIndex = [0,1,2,3]; // or names
grpexplosions.callAll('animations.add', 'animations', 'animexplode', framesIndex, 30, true, false);
//grpexplosions.callAll('animations.add', 'animations', 'animexplode'); // frames optional, this will simply add all frames
var framesIndex = [0,1,2,3]; // or names
grpexplosions.callAll('animations.add', 'animations', 'animexplode', framesIndex, 30, true, false);
//grpexplosions.callAll('animations.add', 'animations', 'animexplode'); // frames optional, this will simply add all frames