WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Repeating timer_callbacks in for_loops (https://forum.worldviz.com/showthread.php?t=1306)

JPWann 01-14-2008 10:10 AM

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() )

farshizzo 01-14-2008 11:01 AM

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() )


JPWann 01-15-2008 02:55 AM

Thanks
 
Thanks Frashizzo,

I thought I'd tried all the combinations of my version - but see my error now - excellent support !


All times are GMT -7. The time now is 02:01 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC