#1
|
|||
|
|||
understanding vizact.moveTo
Hello,
it seems I have problems understanding this moveTo. What I'd like to achieve is to have two actions that move a node one unit (meter) along it's Y axis up or down. That way I can use them on different nodes in the object, regardless of the original position of the node. So I created Code:
_ceilDist = 1 _ceilMode = viz.REL_LOCAL _actYplus = vizact.moveTo( [0,_ceilDist,0], time=4, mode=_ceilMode, interpolate=vizact.easeInOut) _actYmin = vizact.moveTo( [0,-_ceilDist,0], time=4, mode=_ceilMode, interpolate=vizact.easeInOut) def cmdOpenCeil(parName): car.getChild(parName).runAction(_actYplus) def cmdCloseCeil(parName): car.getChild(parName).runAction(_actYmin)
Same effect when using addAction instead. What point am I missing here, and is there a better (working) approach? BR Walter
__________________
21 is only half the truth. |
#2
|
|||
|
|||
Does the following work for you?
Code:
import viz import vizact viz.go() viz.add('dojo.osgb') ball = viz.addChild('beachball.osgb',pos=[0,1,4]) moveUp = vizact.move(0,1,0,1) moveDown = vizact.move(0,-1,0,1) vizact.onkeydown('1',ball.addAction,moveUp) vizact.onkeydown('2',ball.addAction,moveDown) |
#3
|
|||
|
|||
Hi Jeff,
that code works ok as it is. Also, when I adopt it to my script, it does the trick and moves the node by 1 meter. So thank you for the workaround. But
Therefore I'd like to repeat: what am I missing to understand how .moveTo works? When I use your script as a basis and try out .moveTo again Code:
import viz import vizact viz.go() viz.add('dojo.osgb') ball = viz.addChild('beachball.osgb',pos=[0,1,4]) _ceilDist = 1 _ceilMode = viz.REL_LOCAL _actYplus = vizact.moveTo( [0,_ceilDist,0], time=1, mode=_ceilMode, interpolate=vizact.easeInOut) _actYmin = vizact.moveTo( [0,-_ceilDist,0], time=1, mode=_ceilMode, interpolate=vizact.easeInOut) vizact.onkeydown('3', ball.addAction, _actYplus) vizact.onkeydown('4', ball.addAction, _actYmin) def debugPos(): print 'posi:', ball.getPosition() vizact.ontimer(3.3, debugPos)
Giving time=2 does not lower the speed but extends the distance, e.g. 61.55 for .easeInOut Using parameter speed=1 instead of time=1 in the code above yields same result, BUT using speed=.1 results in y=301.75 while speed=10 yields y=4.50 even more confused the more I try, Walter
__________________
21 is only half the truth. |
Tags |
action, moveto, positioning, subnode |
Thread Tools | |
Display Modes | Rate This Thread |
|
|