Phaser 3 如何 运行 spritesheet 动画和移动
Phaser 3 How to run a spritesheet animation AND move
我有一个“玩家”的 spritesheet。当您按下箭头键时,它会四处移动。但是,我只能在移动后得到 运行 动画,或者只能移动或 运行 动画的类似内容。我需要它来移动和 运行 动画。这是到目前为止的相关代码-
var cursors;
var player;
class Scene1 extends Phaser.Scene {
constructor() {
super("bootGame");
}
preload() {
this.load.spritesheet(
"player",
"https://cdn.glitch.com/34a2793c-cdda-4b47-b469-f0357b9fc0f1%2FAH_SpriteSheet_People2.png?
v=1595522143234",
{ frameWidth: 16, frameHeight: 16 }
);
}
create() {
player = this.add.sprite(30, 30, "player");
this.anims.create({
key: "left",
frames: this.anims.generateFrameNumbers("player", { start: 12, end: 14 }),
frameRate: 10,
repeat: 1
});
cursors = this.input.keyboard.createCursorKeys();
update() {
if (cursors.left.isDown) {
player.anims.play("left");
player.x -= 1;
}
}
}
尝试:(第二个参数用于ignoreIfPlaying
)
player.anims.play("left",true);
我认为正在发生的事情是第二个参数的默认值 false 正在重新启动动画。这将使它看起来好像没有在播放,因为它只有在您释放左键后才会完成。
true
将允许它在尝试重新启动之前播放(同时按住左侧)
我有一个“玩家”的 spritesheet。当您按下箭头键时,它会四处移动。但是,我只能在移动后得到 运行 动画,或者只能移动或 运行 动画的类似内容。我需要它来移动和 运行 动画。这是到目前为止的相关代码-
var cursors;
var player;
class Scene1 extends Phaser.Scene {
constructor() {
super("bootGame");
}
preload() {
this.load.spritesheet(
"player",
"https://cdn.glitch.com/34a2793c-cdda-4b47-b469-f0357b9fc0f1%2FAH_SpriteSheet_People2.png?
v=1595522143234",
{ frameWidth: 16, frameHeight: 16 }
);
}
create() {
player = this.add.sprite(30, 30, "player");
this.anims.create({
key: "left",
frames: this.anims.generateFrameNumbers("player", { start: 12, end: 14 }),
frameRate: 10,
repeat: 1
});
cursors = this.input.keyboard.createCursorKeys();
update() {
if (cursors.left.isDown) {
player.anims.play("left");
player.x -= 1;
}
}
}
尝试:(第二个参数用于ignoreIfPlaying
)
player.anims.play("left",true);
我认为正在发生的事情是第二个参数的默认值 false 正在重新启动动画。这将使它看起来好像没有在播放,因为它只有在您释放左键后才会完成。
true
将允许它在尝试重新启动之前播放(同时按住左侧)