PhaserJS:精灵动画问题
PhaserJS: Issue with sprite animation
我有一个小问题,我无法弄清楚哪里出了问题,也许有人可以提供帮助。
似乎 player.anims.play('walk') 不工作 我收到一条错误消息“无法读取 属性 ‘frame’ of undefined”。
我似乎得到了一个空的帧数组。
我如何在 preload() 中加载我的电子表格:
this.load.spritesheet('player', 'assets/characters.png', { frameWidth: 32, frameHeight: 48 })
我的 class 看起来如何:
export default class Player extends Phaser.Physics.Arcade.Sprite {
constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y, 'player')
const player = scene.physics.add.sprite(x, y, 'player')
player.setCollideWorldBounds(true).setInteractive()
scene.anims.create({
key: 'walk',
frames: scene.anims.generateFrameNames('player', { start: 1, end: 3 }),
repeat: -1
})
player.anims.play('walk')
}
}
在创建()中:
this.player = new Player(this, 10, 10)
找到了我正在使用 Phaser 3.21.0 的解决方案,似乎在 this.load.spritesheet
中我必须在配置对象中传递 endFrame
我有一个小问题,我无法弄清楚哪里出了问题,也许有人可以提供帮助。
似乎 player.anims.play('walk') 不工作 我收到一条错误消息“无法读取 属性 ‘frame’ of undefined”。
我似乎得到了一个空的帧数组。
我如何在 preload() 中加载我的电子表格:
this.load.spritesheet('player', 'assets/characters.png', { frameWidth: 32, frameHeight: 48 })
我的 class 看起来如何:
export default class Player extends Phaser.Physics.Arcade.Sprite {
constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y, 'player')
const player = scene.physics.add.sprite(x, y, 'player')
player.setCollideWorldBounds(true).setInteractive()
scene.anims.create({
key: 'walk',
frames: scene.anims.generateFrameNames('player', { start: 1, end: 3 }),
repeat: -1
})
player.anims.play('walk')
}
}
在创建()中:
this.player = new Player(this, 10, 10)
找到了我正在使用 Phaser 3.21.0 的解决方案,似乎在 this.load.spritesheet
中我必须在配置对象中传递 endFrame