Thread: sequence
View Single Post
  #1  
Old 10-16-2007, 08:08 AM
jaclyn.bill jaclyn.bill is offline
Member
 
Join Date: Oct 2007
Posts: 42
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)
Reply With Quote