This isn’t really a problem of the same “condition” not being able to be used twice, but that you are calling a function that gives a different result each time, which doesn’t really make it suitable to be regarded as a “condition”.
e.g. you call event.getKeys()
and detect that a key has been pressed. You then call that function again: it won’t give a result unless a new key press event has occurred.
What you need to do is shift this code out of the conditions field and put it into a code component. In there, you will have code that runs every frame and checks for keypresses. If one of your desired keys is pressed, it sets some variable to True
. You then use that variable name in your condition field. That way, it can be used multiple times, as the value of the variable remains constant. e.g. insert a code component and put this in the “begin routine” tab:
number_pressed = False # need an initial value
and then put something like this in the “Each frame” tab:
if event.getKeys(keyList=[‘1’, ‘2’, ‘3’]):
number_pressed = True
and then put number_pressed
in your conditions field. Make sure that the code component is above the other components, so they get access to the latest value of number_pressed
on every frame.
Note that here although we are checking event.getKeys()
repeatedly, it won’t reset the value of number_pressed
to False when a keypress isn’t detected: if there is no keypress, nothing happens.