PDA

View Full Version : .translate 'n' .goto


vsully
09-28-2005, 05:35 PM
Hi,

Trying to animate an object reseting to a position then moving to locatoin. Right now using a 'myfunc' director function to call a .translate and a .goto.

Problem is, repeated calls to viz.director(myfunc) results in the object moving farther and farther away.

.translates are absolute_world.

thoughts?

second thoughts, it works with simple scripts, but not with the 3dsound and texturing i'm trying. i've attached the portion of the code this deals with.


import viz

viz.go()

CAR_TRANSFORM = [1,1,1]
CAR_GOTO = 15

#Add mini
mini = viz.add('mini.osgx')
mini.translate(CAR_TRANSFORM, viz.ABSOLUTE_WORLD)

#Mini cooper textures
miniTextures = [viz.add('images/coopers01_chilired.jpg')]

def movecar():
#texture car
mini.texture(miniTextures[0],'default')
#play sound
mini.playsound('audio/vwbuggy.wav',viz.PLAY)

mini.translate(CAR_TRANSFORM, viz.ABSOLUTE_WORLD)
dest = CAR_TRANSFORM
dest[2] = dest[2] + CAR_GOTO
mini.goto(dest, 2, viz.SPEED)

vizact.waittime(3)

def stuff(key):
viz.director(movecar)

viz.callback(viz.KEYUP_EVENT, stuff)

farshizzo
09-28-2005, 08:55 PM
Hi,

The problem is with the following line:dest = CAR_TRANSFORMIn python when you assign a list to a variable, it doesn't make a copy. So when you modify the z coordinate of the dest variable you are also modifying the CAR_TRANSFORM variable. Use the following code to make a copy of the list:dest = CAR_TRANSFORM[:]

vsully
09-28-2005, 08:59 PM
k thanks - i was thinking it might be something simple like that... :p