/

Phaser:鍵盤事件

Phaser:鍵盤事件

本篇文章是Phaser系列的一部分。點擊這裡查看該系列的第一篇文章。

滑鼠事件會在遊戲物件上觸發,因為我們通常是透過滑鼠點擊元素。而鍵盤事件則不會與特定的遊戲物件相關聯,我們只是按下鍵盤上的按鍵。

所以我們需要在this.input.keyboard對象上監聽這些事件,如下所示:

1
2
3
this.input.keyboard.on(<event>, function() {

})

<event>是一個字符串,可以是keyupkeydown,用於捕捉所有按下的按鍵,或是結合某個特定按鍵的字符,例如:

  • keyup-A
  • keyup-THREE
  • keydown-F12
  • keydown-ENTER

我們可以使用許多標識符,包括:

  • A ~ Z
  • F1 ~ F12
  • BACKSPACE
  • TAB
  • ENTER
  • SHIFT
  • CTRL. ALT
  • PAUSE
  • CAPS_LOCK
  • ESC
  • SPACE
  • PAGE_UP, PAGE_DOWN
  • END, HOME
  • LEFT, UP, RIGHT, DOWN
  • PRINT_SCREEN
  • INSERT, DELETE
  • ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE
  • NUMPAD_ZERO, NUMPAD_ONE, NUMPAD_TWO, NUMPAD_THREE, NUMPAD_FOUR, NUMPAD_FIVE, NUMPAD_SIX, NUMPAD_SEVEN, NUMPAD_EIGHT, NUMPAD_NINE, NUMPAD_ADD, NUMPAD_SUBTRACT

除了監聽單個按鍵外,我們還可以通過調用this.input.keyboard.createCursorKeys()方法獲得一個按鍵對象:

1
2
3
4
5
let cursors

function create() {
cursors = this.input.keyboard.createCursorKeys()
}

update()函數中,我們可以檢查是否按下了特定的按鍵,並在發生時執行相應的操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function update() {
if (cursors.right.isDown) {
text.x += 5
}
if (cursors.left.isDown) {
text.x -= 5
}
if (cursors.up.isDown) {
text.y -= 5
}
if (cursors.down.isDown) {
text.y -= 5
}
}

tags: [“Phaser”, “keyboard events”, “input”, “createCursorKeys”]