我有一些代码,我希望它从列表中选择一个随机字符串,并将其转换为joypad.set()函数中使用的数据类型。这是我的代码:
Buttons = { A = true,
B = true,
Down = true}
while (true) do
Random = math.random(3)
NewButton = (Buttons[Random])
joypad.set(1, (NewButton))
emu.frameadvance();
end;发布于 2016-03-01 00:44:09
您没有说明您的问题,但是从您的代码来看,您似乎没有从您期望的数组中获得值。您得到的是介于1到3之间的随机数,但是A、B和Down不是1、2和3。按钮是一个关联数组(键值对),所以如果您想以这种方式使用它,就需要设置一个带有键名的第二个数组,并从中获得一个随机索引,如下所示:
ButtonKeys = { "A", "B", "Down" }
Random = math.random(3)
NewButton = (Buttons[ButtonKeys[Random]])这将创建一个表,其值为A、B和Down作为索引1、2和3,因此使用随机数从ButtonKeys数组中获取值,然后将该值用作按钮数组的索引。
编辑:我重读了这个问题,翻阅了我最初的答案,意识到我在想你是在以不同的方式宣布这张表。声明表A、B和Down的方式成为按钮的属性,您可以像Buttons.A、Buttons.B和Buttons.C那样直接调用它们,或者使用带有要访问属性的字符串名称的方括号来访问它们。在您的例子中,Buttons["A"]、Buttons["B"]和Buttons["Down"]。
https://stackoverflow.com/questions/35712040
复制相似问题