如何将Phaser键盘事件转换为触摸事件

时间:2017-03-22 08:03:39

标签: javascript touch phaser-framework

我正在使用Phaser跟踪Fruit Ninja教程。对于主菜单,作者已使用

if (this.game_state.game.input.keyboard.isDown(Phaser.Keyboard.SPACEBAR)) {
    this.menu_items[this.current_item_index].select();

如何使用触摸事件实现相同的逻辑,以便在平板电脑/手机上使用它?扫描逻辑的其余部分是使用触摸,菜单除外。我想知道如何改变它。

1 个答案:

答案 0 :(得分:0)

这让我看起来不仅仅是一个简单的“改变它”。您发布的代码片段让我看起来菜单保留了某种当前索引,其中突出显示了哪个菜单项(可能使用箭头键?)。

例如,如果菜单由精灵组成,则可以为每个精灵附加触摸事件。假设您在菜单中有一个名为exitGameMenuItem的精灵。您需要启用其输入并附加onInputDown事件回调(它将同时适用于鼠标和触摸)。

exitGameMenuItem.inputEnabled = true;
exitGameMenuItem.events.onInputDown.add(function() {
    // call the exit game function here
}, this);

或者,您可以直接添加回调(不将其包装在函数中),如下所示:

exitGameMenuItem.events.onInputDown.add(this.exitGame, this);

(这假设您的exitGame()函数处于相同状态。)