[英]Phaser Animation isn't working and freezing my game, frames from sprite sheet don't seem to load
我試圖在我的游戲中擁有一個角色的八幀行走 animation。
這是加載精靈表的代碼:
this.load.spritesheet('PeefSide', "assets/PeefSide.png", {frameWidth: 50, frameHeight:
60, startFrame: 0, endFrame: 7});
這是創建精靈的代碼:
this.p1 = this.physics.add.sprite(500, 730, 'PeefSide');
這是創建 animation 的代碼:
this.anims.create({
key: 'walk',
frames: this.anims.generateFrameNumbers('peefSide', { start: 0, end: 7, first: 0}),
frameRate: 10,
repeat: -1
});
這是在角色移動時播放 animation 的代碼:
if(this.keyA.isDown) {
this.p1.setVelocityX(-200);
this.p1.anims.play('walk', true);
}
我不確定我做錯了什么,但是當我運行游戲時,當我按下移動按鈕時它會凍結。 檢查屏幕顯示錯誤正在嘗試讀取未定義的屬性,並且在錯誤發生之前,它說:
generateFrameNumbers:紋理中缺少第 0 幀:peefSide
它對每一幀重復這一行,數字增加一,然后在按下移動按鈕時發生游戲凍結錯誤。 真的不知道出了什么問題。
如果它有助於找到答案,我在 VSCode 中使用 Phaser 3 並使用街機物理。
問題是, this.anims.generateFrameNumbers('peefSide',...)
與加載this.load.spritesheet('PeefSide',...)
中的實際鍵不匹配,因為鍵是 case-敏感的。
您必須像這樣使用大寫“P”: this.anims.generateFrameNumbers('PeefSide',...)
這應該修復警告:
generateFrameNumbers:紋理中缺少第 0 幀:peefSide
實際上,這也應該解決凍結問題,因為現在 animation 正在播放。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.