在我的hangman程序中,我试图使用数组来检测之前是否已按下过一个字母,因此无法再次按下它。
在尝试执行此操作时,我尝试使用:
If targetarray[LastLetter] = 1 Then
“ LastLetter”是我的变量。
在我的代码的另一部分中,我也将数组存储为:
Sub LetterArrays
If GraphicsWindow.LastKey = "a" Then
targetarray["a"] = 1
ElseIf GraphicsWindow.LastKey = "b" Then
targetarray["b"] = 1
依此类推...
用于检查字母是否为1的初始代码的子项位于按下字母(GraphicsWindow.KeyDown
)且在if子句之前被调用的子项内,我使用:targetarray[LastLetter] = 1
作为我的子项将数组中的字母设置为1的方法。
如果这对您有意义并且您有解决方案,请非常感谢。
答案 0 :(得分:0)
不能100%确定您要问的是什么,但是如果您只是想检测按键,那么此代码应该可以解决问题:
GraphicsWindow.KeyDown = KeyDown
GraphicsWindow.KeyUp = KeyUp
While 1 = 1
Program.Delay(10)
If Key["a"] Then
TextWindow.WriteLine("Key 'a' was pressed")
EndIf
EndWhile
Sub Keydown
LastKeyDown = GraphicsWindow.LastKey
Key[LastKeyDown] = "True"
EndSub
Sub KeyUp
LastKeyUp = GraphicsWindow.LastKey
Key[LastKeyUp] = "False"
EndSub
答案 1 :(得分:0)
据我所知,您不希望按两次相同的键。您可以这样做:
GraphicsWindow.KeyDown = KeyDown
i = 0
Sub KeyDown
If Array.ContainsValue(keysPressed, GraphicsWindow.LastKey) Then
' key already pressed before
Else
' key not pressed before
i = i + i
keysPressed[i] = GraphicsWindow.LastKey
' add code here