После того, как я создал шкалы оценок и перевернул экран, они не отображаются.Что я делаю неправильно? - PullRequest
0 голосов
/ 10 апреля 2019

После того, как я создал шкалы оценок в PsychoPy, я не могу их отобразить после отображения своих стимулов.Что я делаю неправильно?

Подготовка эксперимента

Определение окна:

win = visual.Window(fullscr=True, color = 'Black')

Подготовка стимулов

Картинки

Составьте список изображений в моей папке:

images = glob.glob("Yellow/*.jpg")

Рандомизировать порядок для картинок:

random.shuffle(images)

Подготовить Крест фиксации

stim_fix_left = visual.TextStim(win, '+')  # Fixation cross is just the character "+". Units are inherited from Window when not explicitly specified.
stim_fix_left.pos = (0.5,0)
stim_fix_right = visual.TextStim(win, '+')  # Fixation cross is just the character "+". Units are inherited from Window when not explicitly specified.
stim_fix_right.pos = (-0.5, 0)

Рейтинги

# the item to-be-rated or respond to:
whichred_left = visual.TextStim(win, text="Does left or right picture contain most red?", height=.04, units='norm')
whichred_left.pos = (0.5,0)
whichred_right = visual.TextStim(win, text="Does left or right picture contain most red?", height=.04, units='norm')
whichred_right.pos = (-0.5, 0)

Создать стимулы

Показать вводное сообщение:

msg(intro, "white")

Показать введение в блок:

msg(block_red, "red")

for i in images:
    ##Pictures
    stim_fix_right.draw()
    stim_fix_left.draw()
    win.flip()#flip screen
    core.wait(1.0)

    #Picture 1
    img1 = visual.ImageStim(win, image = i)#create visual stimuli
    img1.pos = (0.4, 0)
    img1.size = (0.5)

    #Picture 2
    img2 = visual.ImageStim(win, image = images[2])#create visual stimuli
    img2.pos = (0.7, 0)
    img2.size = (0.5)

    #Picture 3
    img3 = visual.ImageStim(win, image = i)#create visual stimuli
    img3.pos = (-0.4, 0)
    img3.size = (0.5)
    #Picture 4
    img4 = visual.ImageStim(win, image = images[2])#create visual stimuli
    img4.pos = (-0.7, 0)
    img4.size = (0.5)

    #Drawing picures
    img1.draw()#draw picture
    img2.draw()#draw picture
    img3.draw()#draw picture
    img4.draw()#draw picture
    win.flip()#flip screen
    stopwatch.reset() #set clock
    core.wait(1.0)

    #Ratings
    event.clearEvents()
    # define window
    winrating = visual.Window(size = (1280, 720), color = 'black', units='pix')
    x, y = winrating.size  # for converting norm units to pix
    leftward = -0.35 * x / 2  # use pix units, because the drawing window's units are pix
    rightward = -1 * leftward

    # create a RatingScale object:
    RatingLeft = visual.RatingScale(winrating, choices=map(str, range(1, 8)), mouseOnly=True, pos=(leftward, -y/6),
        marker='circle', size=0.85, name='left')
    RatingRight = visual.RatingScale(winrating, choices=map(str, range(1, 8)), low=0, high=8, markerStart=4,
        leftKeys='left', rightKeys = 'right', acceptKeys='down', pos=(rightward, -y/6),
        marker='circle', size=0.85, name='right')

    while RatingLeft.noResponse or RatingRight.noResponse:
        whichred_left.draw
        whichred_right.draw 
        RatingLeft.draw()
        RatingRight.draw()
        winrating.flip()
        if event.getKeys(['escape']):
            core.quit()

1 Ответ

0 голосов
/ 11 апреля 2019

Нет необходимости определять второе окно.Сделайте все свои рисунки в ваше первоначально определенное окно, win.Он создается как полноэкранное окно, поэтому я предполагаю, что второе окно, winrating, скрыто за ним, и любой рисунок не будет виден.

...