这一篇文章,让我们来看看Phaser3中的输入系统。
所谓的输入系统,指的是全局事件,即键盘输入、鼠标输入、游戏手柄输入等。
在一个场景中,管理一个输入系统,它位于Phaser.Scene.input属性中,默认输入系统是开启的。
键盘输入
我们可以在Phaser.Scene或其派生类中的create()方法中如下使用:
create(){
this.input.keyboard.on('keydown',(e)=>{})
}
然后,在箭头函数中进行处理,当然你想写function也是可以的。它会传入一个KeyboardEvent类对象,这个对象包含了keyCode等信息,然后就可以进一步判断是按下了哪一个按键,并对其进行交互处理了。
当然你也可以写一个函数或一个类或者直接在场景类中写一个处理键盘按下输入事件的方法,例如叫做,handleKeyDown,然后在create()方法中这样写:
this.input.keyboard.on('keydown',this.handleKeyDown);
鼠标事件也是同理的。
on方法是用于处理事件发生时应该运行的函数的,如果需要持续地判断一个输入的情况时(比如方向键控制角色移动),则应该在update()函数中进行输入处理。
update(){
if(this.input.keyboard.addKey("Left").isDown){
// 这里写持续按方向左键的逻辑
}
}
简而言之,on()方法只在事件发生时,运行一次指定的函数,而当在需要判断某个输入的状态是否持续时,则需要写在update()函数中。
网友评论