簡體   English   中英

Phaser Animation 無法正常工作並凍結我的游戲,精靈表中的幀似乎沒有加載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM