我有问题将对象(以关联数组的形式)传递到单击像素位置的方法中。应该能够使用格式value = arrayName[Key]
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
CoordMode Mouse Screen
;This Area is for defining any object nessesary to interact with the game
;
;
BACKPACK_28 := {UPPER_BOUND: 964, LOWER_BOUND: 995, LEFT_BOUND: 1569, RIGHT_BOUND: 1600, MENU_KEY: "esc"}
;
;
;Ends Game Object section
^l::
select(BACKPACK_28, true)
return
select(balls, switchMenus){
if(switchMenus==true){
SendInput {object[MENU_KEY]}
}
Random, y , balls[LOWER_BOUND], balls[UPPER_BOUND]
Random, x , balls[LEFT_BOUND], balls[RIGHT_BOUND]
Click, x, y
}
答案 0 :(得分:1)
使用引号初始化数组,如下所示:
BACKPACK_28 := {"UPPER_BOUND": 964, ...}
否则,AHK会将UPPER_BOUND
视为单独的变量。
关于Random, y , balls[LOWER_BOUND]
:请参阅Random
上的文档:
[Param] Min:可以生成的最小数字,可以是负数,浮点数或表达式。
如果您可以在此处声明变量名称,则不会说数字。
使用%
s获取变量的值:
无论
low := balls["LOWER_BOUND"]
up := balls["UPPER_BOUND"]
Random, y, %low%, %up%
或
Random, y, % balls["LOWER_BOUND"], % balls["UPPER_BOUND"]