#1
|
|||
|
|||
Repeating timer_callbacks in for_loops
This is a beginners Q, as I have clearly missed something about how timers can be embedded in loops:
I have a function with a timer-callback so I can do frame-by-frame manipulations to a ball in flight. I can run repetitions of this ball-flight using a second timer as below: def ballfunc(a,b,c,d,e): . StartT = viz.tick() . def balltimer(timernum): . ball.setScale....etc... . . viz.callback(viz.TIMER_EVENT,balltimer) . viz.starttimer(1,0.02,48) vizact.ontimer2(2,10,ballfunc,0,0,-1,1,0.5) But what I actually want is to nest ballfunc in a for_loop so I can pass it different parameters for each repetition. But my clumsy attempts to do this don't work (see below). How do I run, say 10 reps of ballfunc with different parameters passed to it each time ?: def BallFlight(): . for i in range(0,9): .. ball.setPosition(ball.initial) .. yield viztask.runAction(ball,ballfunc(0,0,-1,1,SCALESEQ[i])) .. yield viztask.waitTime(2) viztask.schedule( BallFlight() ) Last edited by JPWann; 01-14-2008 at 10:12 AM. |
#2
|
|||
|
|||
Just call the function in each iteration of the loop in your BallFlight task:
Code:
def BallFlight(): for i in range(0,9): ball.setPosition(ball.initial) ballfunc(0,0,-1,1,SCALESEQ[i]) yield viztask.waitTime(2) viztask.schedule( BallFlight() ) |
#3
|
|||
|
|||
Thanks
Thanks Frashizzo,
I thought I'd tried all the combinations of my version - but see my error now - excellent support ! |
|
|