Phaser3入門教程:第一個Phaser3遊戲(中文版)(七)
- 鍵盤控制角色
碰撞已經處理好了,但我們還要讓角色動起來。不知道你是否會馬上想起去某些文件上搜尋如何加入監聽器的方法,但這裡你大可不必如此。Phaser內部已經有一個很好的鍵盤管理程式,只要用下面一段程式碼就可以使用:
cursors = this.input.keyboard.createCursorKeys(); |
這裡的集合cursors物件的四個屬性:上,下,左,右,以及所有的按鍵的物件例項。接著在update迴圈中新增下面的程式碼:
if (cursors.left.isDown) { player.setVelocityX(-160); player.anims.play('left', true); } else if (cursors.right.isDown) { player.setVelocityX(160); player.anims.play('right', true); } else { player.setVelocityX(0); player.anims.play('turn'); } if (cursors.up.isDown && player.body.touching.down) { player.setVelocityY(-330); } |
儘管程式碼較多,但還是很好理解的。
第一件事是判斷左鍵是否按下,是的話我們就給角色一個負的橫向速度,並播放角色向左跑的動畫。如果按下右鍵就反過來處理。通過把速度歸零,我們可以角色停下來。
當按鍵按下時,角色會移動。按鍵鬆開時,立馬停止。Phaser還能通過動量和加速度實現更多複雜的動作,但在這個例子中只要做到這點就可以了。後面一段程式碼判斷沒有鍵按下時,就讓角色橫向速度為零,並播放‘turn’的動畫。
跳起來
最後一段程式碼增加了跳起的能力。上方向鍵就是跳起鍵,我們要判斷上鍵的是否按下狀態。還要檢查角色是否在正地面上,如不是,那說面它正在空中。
如果兩種條件都滿足,我們就給角色一個縱向的330畫素/秒的速度。因為重力的原因角色會自動落回地面。通過這些設定,我們就可以探索我們的遊戲世界了。載入part7.html到瀏覽器中試試看吧!試著調整一下330那個數值,看看跳起來有是什麼不同效果。