sequence
hi,
I'm new to vizard and need to solve what is possibly a silly problem.
I'm hoping to create stimuli for an experiement in which a series of ball travel towards the viewer, disappear, reappear at the beginning and travel towards the viewer again- multiple times with varying speed and distance etc.
The code below carries this out fine. I'm running into trouble with my "for" function however. I would like it to run for x=1, m=.5 then x=-1, m=-.5 etc. (in the example below) so that the for functions run parallel. However, as it stands it runs 2 x=1 (for m= .5 then -.5) then 2 x = -1 (for m=.5 then m = -.5) etc. Is there any way to get these for sequences to run parallel so that the stimuli don't get presented in blocks?
I would appreciate any comments on this.
Thank you.
Jaclyn.
mport viz
import vizact
import vizmat
from random import random
import time
import math
viz.go()
gball = viz.add('golfball.wrl')
Start_Z = 100.0
Stop_Z = 10.0
s = 100.0
d = Start_Z-Stop_Z
t = d/s
Spin = 150.0
Angle = Spin*t
viz.move(0,0,0)## sets viewpoint at z meters away
#gball.setPosition (0,0,0) ####sets object position if do not want the Start_Z
viz.eyeheight(0) ####sets eye height, default is 1.82 (6ft)
gball.translate(0,0,0)####sets object position
for x in [1, -1, 0]:
for m in [.5, -.5, -.2]:
moveForward=vizact.goto(x,0,Stop_Z,.8+m,viz.TIME)
#moveForward=vizact.goto(x,0,Stop_Z,.8+m,viz.SPEED )
moveStart=vizact.goto(0,0,Start_Z,0.01,viz.TIME)
moveOut=vizact.goto(0,0,-1000,0.001,viz.TIME)
wait1 = vizact.waittime(0.5)
wait2 = vizact.waittime(5)
motionseq=vizact.sequence(moveStart,wait1,moveForw ard,moveOut,wait2,moveStart,wait1)
gball.add(motionseq)
|