我正在用 AutoHotKey 编写脚本,但我偶然发现了一个僵局。现在我有一个包含复选框和下拉列表的工作 GUI。该程序是一个用于游戏的宏脚本——用户检查他想在后台运行哪些宏,提交他的选项,程序不断评估各种条件并根据这些条件是否满足来执行命令。每个宏的模板是这样的:
Loop:
PixelGetColor, color, 488, 778 ;gets pixel color of specific coordinate
if thecolor = 0x000000 ; if the color is black
{
SendInput {Raw}f ;sends the f command to use item
}
else sleep 20
goto, Loop
因此宏循环,每 2 毫秒评估一个像素,如果满足 if 语句,则发送输入。
这就是问题所在:对于用户可以检查以在后台运行的每个宏,都有一个不同的像素颜色被精确定位,一个不同的输入被发送,一个不同的坐标要评估。如何制作一个考虑到用户复选框选择的包罗万象的循环?例如,如果 checkBox = 1(选中),我可能是这样的:
if(%Box1%=1)
{
Run above code
}
但如果用户检查 1 和 2,我也必须评估其他坐标。像这样:
if(%Box1%=1 & %Box2%=2)
{
Run above code
+
PixelGetColor, color2, 510, 778
if thecolor = 0x000000
{
Send 1
Sleep 20000
goto, start
}
else, sleep 20
我不想让多个不同的循环一个接一个地运行,因为它太慢了,我不想对所有可能的“if”排列做一个巨大的分支。有人知道该怎么做吗?