#1
|
|||
|
|||
passing data to viz.director
is there a way to pass information to vis.director(func)? I have an array of people i want to blink, and this is my setup, but i don't see it working:
Code:
class Person(viz.VizAvatar, viz.EventClass): ... def _blink(self): self._head.morph(0,1.0,0.1) viz.waittime(BLINK_DURATION) self._head.morph(0,0.0,0.1) viz.starttimer(TIMER_BLINK, random.uniform(BLINK_DELAY_MIN, BLINK_DELAY_MAX)) def _ontimer(self, num): if num == TIMER_BLINK: viz.director(self._blink) EDIT: my reason for the director function is because i need the waittime. otherwise the blink happens too fast and looks unnatural. |
#2
|
|||
|
|||
Hi,
How is it not working? From what I can tell it should work fine. Anyway, to answer your question, you can pass arguments to director functions. Example: Code:
def func(x,y,z): print x,y,z viz.director(func,1,2,3) viz.director(func,4,5,6) Code:
#Create action that will make a face blink blinkAction = vizact.sequence(vizact.waittime(vizact.randfloat(BLINK_DELAY_MIN, BLINK_DELAY_MAX)),vizact.morph(0,1.0,0.1),vizact.waittime(BLINK_DURATION),vizact.morph(0,0.0,0.1),viz.FOREVER) #Add the action to the face object avatar._head.add(blinkAction) If you use the above example then you might need to change the BLINK_DURATION value since the actions are performed sequentially. |
|
|