1

我是 Vizard 的新手。我正在尝试创建一个简单的代码来在特定时间集内按顺序执行两个任务:

  1. 0.8 秒的黑色图像
  2. 随机拍摄的一系列图像(来自文件夹),持续 1.5 秒。我可以单独执行这些任务,但我不能合并在一起。如果有人有建议,谢谢
import viz
import vizact
import vizinfo
import random


viz.setMultiSample(4)
viz.fov(60)
viz.go()

vizinfo.InfoPanel()
viz.clearcolor(viz.BLACK)

FRAME_RATE  = 0.667       # in Hertz

r = list(range(7))
random.shuffle(r)
movieImages = viz.cycle( [ viz.addTexture('sequence_IMG/img%d.jpg' % i) for i in r ] )
screen = viz.addTexQuad()
screen.setPosition([0, 1.82, 1.5])
screen.setScale([4.0/3, 1, 1])

def executeExperiment():
    for trialNumber in range(3):
        yield Dark() #wait for doTrial to finish
        yield vizact.ontimer(1.0/FRAME_RATE, NextMovieFrame)
        print('Trial Done: ', trialNumber)

    print('done with experiment')

#Setup timer to swap texture at specified frame rate
def NextMovieFrame():
    screen.texture(movieImages.next())
    
def Dark():
    yield viztask.waitTime(1) #wait for 1 second
    viz.clearcolor(viz.BLACK)
    
vizact.ontimer(1.0/FRAME_RATE, NextMovieFrame)
viztask.schedule(executeExperiment())
4

0 回答 0