AHK中的关联数组不能正确地将信息传递给方法

时间:2016-04-20 06:11:37

标签: arrays methods autohotkey

我有问题将对象(以关联数组的形式)传递到单击像素位置的方法中。应该能够使用格式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
}

1 个答案:

答案 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"]