I am having some trouble resetting the keypresses after each trial.
Here is my code:
def showstim(stimtype): # get a key record function in here selstim = eval(stimtype).pop(0) drawstim = visual.ImageStim(win, image = selstim, pos = [0,0]) rt_clock.reset() #trialnum = trialnum + 1 frames=0 kb.clock.reset() keypress =  while frames < my_dur: drawstim.draw() win.flip() stimonset = exp_clock.getTime() frames = frames + 1 keypress = kb.getKeys(['right', 'left', 'q'], waitRelease=True, clear= True) if frames >= my_dur: stimoffset = exp_clock.getTime() recresp(keypress) def recresp(keypress): for key in keypress: taskd['encrespkey'], taskd['encrt'], taskd['enckeydur'] = key.name, key.rt, key.duration if ('left' in keypress) and (stimtype == 'stanpics'): # left is abstract taskd['enckeyaccuracy'] = 1 if ('right' in keypress) and (stimtype == 'stanpics'): taskd['enckeyaccuracy'] = 0 if ('left' in keypress) and (stimtype != 'stanpics'): taskd['enckeyaccuracy'] = 0 if ('right' in keypress) and (stimtype != 'stanpics'): taskd['enckeyaccuracy'] = 1
I set the ‘clear=True’ within the kb.getKeys component. However, every time there are no responses, this code just prints out the key presses from the previous trial.
I was wondering if anyone knows how to ‘wipe’ the kb.keypress buffer from old (i.e., previous trial) clicks.