Я хочу запрограммировать задачу ответа на сигнал остановки.У меня 90% этого в сумке, но у меня действительно есть проблемы с обработкой событий клавиатуры во вложенных циклах ... Я пробовал pygame ... Но он либо не записывает ответ, либо зависает в цикле.
Этот цикл представляет одно испытание, которое состоит из объекта, представленного на экране в течение 1,25 секунд (эфир квадрат или круг).
Если это квадрат, участник должен нажать«z», если это круг, они должны нажать «/» ... Он циклически просматривает индексы массива, которые содержат, какой объект появится на экране, и будет ли сигнал или нет (beeplist[i]
)
В некоторых испытаниях будет звучать звуковой сигнал в переменное время (SSD ... Задержка сигнала остановки определяется вне этого цикла, который затем изменяется в зависимости от производительности).Если есть звуковой сигнал, человек, как ожидают, не ответит.(Я не хочу ждать ответа)
Итак ... Я хочу записать ответ человека (какую кнопку он нажимает) и время реакции.Я хочу, чтобы первый ответ записывался только.
Пожалуйста, кто-нибудь может мне помочь разобраться, как я могу получить ответ от клавиатуры и время реакции, пожалуйста?
Вот что я получил:
presses = None
starttime = time.time()
trial_ST.append(starttime)
end_time = time.time() + 1.250 #makes sure each trial is only 0.5s in total
StopSignalTime = starttime + SSD # generates the time at which the SS is to be presented (if it is)
while time.time() < SSD:
presses = ####### Need this to wait for specific keypress (either z or /)
response.append(presses) #write the response to an array
if beeplist[i] == 1:
tone.play()
while time.time() < end_time:
if presses is None:
presses = ####### Need this to wait for specific keypress (either z or /)
response.append(presses) #write the response to an array
SSDlist = SSDlist.append(SSD)
if beeplist[i] == 1:
if presses == None:
SSD = SSD + 0.05
else:
SSD = SSD = 0.05
print "end of block iteration"
blockiteration = blockiteration + 1
startTask = False
restblock()