#1
|
|||
|
|||
Timer Actions problem
Hello,
I wrote a small script basically want to play some animation paths in a specific schedule and every animation path can be played more than once. In this script, I create an animation path for a ball and another animation path for a duck. The array time_to_go[] and object[] make a schedule for the ball and duck. Here I would like firstly duck start to move; and after 3 seconds, ball start to move; and after another 3 seconds, ball start to move again. Then done. unfortunately the ball will start the 3rd time after my schedule. Could somebody help me diagnose what's wrong with it. Thanks, Code:
import viz import math viz.go() viz.clearcolor(0.5,0.5,1) viz.add('tut_ground.wrl') #Add 2 models. #One is a ball, the other is a duck. model = [] ball = viz.add('ball.wrl') duck = viz.add('duck.cfg') model.append(ball) model.append(duck) #Add the path. #path[0] is for the ball, path[1] is for the duck. path = [] for x in range(2): pa = viz.addAnimationPath() path.append(pa) positions = [ [5,1,6], [0,1,3], [-150,1,6] ] for x in range(len(positions)): cp = viz.addControlPoint() cp.setPosition(positions[x]) path[0].add(cp,x+1) path[1].add(cp,x+1) for x in range(2): path[x].constantspeed(viz.ON,10) path[x].loop(viz.OFF) path[x].translatemode(viz.BEZIER) path[x].setAutoRotate(viz.ON) #Link the model to a path. ball.link(path[0]) duck.link(path[1]) def mytimer(num): for x in range(2): pos = model[x].getPosition() if pos[0] < -15 : path[x].pause() path[x].reset() model[x].setPosition(0,0,0) def donothing(): pass #The following arrays means: #Firstly: duck start to move #After 3 seconds, ball start to move #After another 3 seconds, ball start to move again time_to_go = [0, 3, 6] object = [1, 0, 0] #1 means duck, 0 means ball #Create an array of timer action myTimerAction = [] for x in range(3): if (x == 0) : myTimerAction.append(vizact.ontimer2(0, 1, donothing)) path[object[0]].play() else: wait = time_to_go[x] - time_to_go[0] myTimerAction.append(vizact.ontimer2(wait, 1, path[object[x]].play)) viz.callback(viz.TIMER_EVENT,mytimer) viz.starttimer(0,0,viz.PERPETUAL) Last edited by whj; 04-08-2009 at 12:41 PM. |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
array problem | mrvr | Vizard | 8 | 03-10-2014 09:20 PM |
Sound Looping Problem | JMOwens | Vizard | 4 | 09-29-2010 09:42 PM |
Timer speed | Jerry | Vizard | 1 | 12-08-2006 11:01 AM |
problem with female animations | vmonkey | Vizard | 1 | 10-07-2005 10:36 AM |
Weird lagging/choppiness when avatars perform actions | vjonshih | Vizard | 8 | 11-30-2004 04:08 PM |