문제

나는 참가자가 자극 크기가 지속적으로 (프레임 단위로) 변경 될 수있는 실험을 실행하려고합니다 (즉, 가압 / 유지 키가 늘어나고, 하향 키가 크기가 감소) 및 확인Enter-Key를 사용하십시오.나는 Pyglet에서 Key.stateHandle ()을 사용하는 것이 유용하고 기본적으로 내 코드가 의도 한대로 작동합니다.그러나 일부 "시련"이 건너 뜁니다.

여기에 내 코드가 있습니다 :

from psychopy import visual, core, event
from pyglet.window import key 
win = visual.Window([1280,1024], fullscr=False, units='deg',monitor='testMonitor',winType='pyglet')
keyState=key.KeyStateHandler() 
win.winHandle.push_handlers(keyState) 

myCircle = visual.Circle(win,edges=128,radius=2.5,lineColor='black',fillColor='black',units='deg') 
myCircle2 = visual.Circle(win,edges=128,radius=2.5,lineColor='black',fillColor='black',units='deg') 
response=0

for i in range(5):
    sizeIni=1.0
    myCircle2.setRadius(sizeIni)
    myCircle2.setPos([0.0, -10.0])
    event.clearEvents()
    response=0
    while response <> 1: 
        response=None
        if keyState[key.UP]:
            sizeIni=sizeIni+0.03333
            if sizeIni>=10.0:
                sizeIni=10.0
            myCircle2.setRadius(sizeIni)
            response=0
        elif keyState[key.DOWN]:
            sizeIni=sizeIni-0.03333
            if sizeIni<=1.0:
                sizeIni=1.0
            myCircle2.setRadius(sizeIni)
            response=0            
        elif keyState[key.ENTER]:
            size=sizeIni
            print size
            response=1
        elif keyState[key.ESCAPE]:
            core.quit()        
        size=sizeIni
        myCircle.draw()
        myCircle2.draw()
        win.flip()
.

이 일상은 5 번의 시련을이어야하지만 일부 시도는 건너 뜁니다.여기 프로토 타입 출력이 있습니다.

1.36663
1.0 # this trial is skipped 
1.6666
2.23321
1.0 # this trial is skipped 
.

스킵 된 시도의 순서도 변수입니다.두 개의 다른 컴퓨터에서 문제를 받았습니다 (우분투 / Windows 7).코드에 명백한 오류가 있습니까? 아니면 다른 방식으로 실험을 코딩하는 방법에 대한 조언이 있습니까?

도움이 되었습니까?

해결책

문제가 입력 키가 눌려 지는지 여부를 확인하는 것입니다. 그러나 다시 탐지되기 전에 릴리스되지 않은지 여부가 아닙니다.I.E.E.E.이 코드는 키 상태의 모든 화면 새로 고침 기간에 한 번 점검합니다.피사체가 하나의 재판에 응답하여 ENTER를 푸시 할 수 있지만 이미지가 원래 크기로 재설정되고 다음 재판이 시작되면 해당 키가 여전히 다운 될 수 있습니다.

두 개의 연속 키를 누르지 않고 눌러지지 않는 키가 없거나 다른 타인이 탐지되는 것 중 하나가없는 두 개의 연속 키를 누르고있는 키가 들어가는 지 여부를 추적해야합니다.나는 이것이 당신이 지속적으로 응답하려는 것처럼 다른 두 개의 키에 이것이 필요하지 않지만, Enter 키는 개별 이벤트로 취급되어야한다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top