0

我正在开发一个游戏设计/UI 项目,以重新设计现有游戏的控制方案(在本例中为 Trine)以使用简约输入。我正在尝试将横向移动和跳转功能映射到 Win8 平板电脑的音量按钮。这是我正在使用的基本代码:

Volume_Up::
Loop 5
{
  Send {right down}
  Sleep 50
}
Send {right up}
Return

Volume_Down::
Loop 5
{
  Send {left down}
  Sleep 50
}
Send {left up}
Return

这工作得相当好,并且对左右移动非常敏感。但是,我想要的期望行为是在按下两个按钮时触发跳转(即向上)。例如:

  • 玩家按住 VolumeUp 向右移动。
  • 玩家遇到障碍物。
  • 播放器继续按住 VolumeUp 以排队向右移动,并且;
  • 播放器短按 VolumeDown
  • 玩家跳跃,运动继续向上和越过障碍物向右。

我已经尝试过使用具有 (Volume_Up & Volume_Down::) 语法的另一个脚本的各种排列来触发这种交互,但这似乎总是会干扰移动命令。我认为这可能需要在左移/右移命令中使用嵌套的 If 语句,以检查两个按钮是否都被按下,但 Autohotkey 文档不是很清楚,我不确定如何编写代码(我比起程序员,我更像是游戏设计师)。任何帮助将非常感激!

4

1 回答 1

0

首先,请注意 MCL 的评论。按下一个按钮 5 次并且在其间从不释放它似乎并没有多大作用。

我认为您希望多个线程能够同时运行。查找线程,但请注意以下事项:

“虽然 AutoHotkey 实际上并不使用多个线程,但它模拟了其中的一些行为:如果启动第二个线程——例如在前一个仍在运行时按下另一个热键——当前线程将被中断(暂时停止)允许新线程成为当前线程。如果在第二个线程仍在运行时启动第三个线程,则第二个和第一个线程都将处于休眠状态,依此类推。

于 2013-05-05T06:36:51.993 回答