Autohotkey:一个命令的多个/偶然使用

时间:2013-05-04 19:58:17

标签: syntax automation autohotkey

我正在开发一个游戏设计/ 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

这项工作相当不错,并且对左右移动非常敏感。但是,我想要的所需行为是当按下BOTH按钮时触发跳转(即向上)。例如:

  • 播放器保持VolumeUp向右移动。
  • 玩家遇到了障碍。
  • 播放器继续保持VolumeUp排队右移运动;
  • 玩家暂时点击VolumeDown
  • 球员跳跃,运动继续向右移动障碍物。

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

1 个答案:

答案 0 :(得分:0)

首先,请注意MCL的评论。按下按钮5次并且从不在中间释放它似乎没什么用。

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

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