模拟按键操作

在【键盘操作】组件中,我们添加了一个用于手动触发按键条件的动作, 使用该动作可减少实现多平台操作的工作量。
例如:如果一个游戏,电脑使用按键控制人物的攻击跳跃,而在手机上,需要使用点击按钮的方式去实现,就会产生两套触发条件不同,但动作相同的事件表。 使用模拟按键操作的方式去实现,只需要写按键触发的相关动作,然后在点击指定按钮后,去触发相应的按键操作即可。

基本原理

模拟按键的动作会根据模拟类型,触发对应的按键条件。例如:模拟按下W的动作,会触发【按下W】的键盘条件。

添加人物

首先我们建立按键控制的相关事件,新建一个人物对象,添加【八方向运动】能力。

因为我们要使用自定义的键盘操作来进行控制,所以先将能力中的【默认控制】取消勾选,

添加按键操作

接下来我们通过按键来控制玩家的移动

预览可以发现,当我们按住WASD时,人物会往对应的方向移动。

在界面上添加触屏按钮

为了在手机上也可以操作,我们添加在界面上添加方向键按钮图片

添加模拟按键动作


最后我们添加模拟按键的动作. 当我们触摸方向键图片时,分别模拟 WASD 4个键盘按键的按下

【按键动作】参数处,我们选择【按住】动作,代表我们要模拟键盘按住的动作。
在【键】处选择我们想要进行模拟的按键即可,操作方式与其他键盘操作条件一样。

但是需要注意的是,由于我们是手动模拟键盘操作,在模拟了【按住】之后,还需要手动模拟【松开】的动作,否则条件会一直执行。


接下来预览游戏,可以发现当我们触屏操作触摸方向键图片时,人物也进行了移动。

模拟按下与模拟按住的区别与共同点

  1. 【按下】和【按住】都需要手动模拟【松开】来取消操作
  2. 【按下】会触发条件【按下某键时】一次或触发【按住某键时】多次,直到模拟模拟【松开】后再次模拟【按下】。
    3.【按住】会触发条件【按住某键时】,并不会触发【按下某键时】

在使用的过程中也可以自己去试验两者的不同之处。