Hello!
I have an animation that goes through a maze in a loop (4 times).
I also have a yield statement that waits for an arrow key (see code below in red) but whenever I have it inside the function, it offsets everything, the animation seems to play twice before waiting for the arrow key and then it offsets all coordinates.
Why does that happen?
Code:
import viz
import viztask
viz.clearcolor(viz.BLACK)
viz.go()
#Set the start position:
startPos = [-6.4,1.4,-8]
### Add all the resources. ###############
maze1 = viz.add('Objects/Maze_1.dae')
maze1.visible(viz.OFF)
view = viz.MainView
view.eyeheight(1.4)
view.setPosition(startPos)
view.collision(viz.ON)
viz.collisionbuffer(.8)
##Animation path
pathMaze1 = viz.addAnimationPath()
#Add control points to the path, along with their time stamp.
pathMaze1.addControlPoint(2, pos=startPos,euler=(0,0,0),scale=(2,2,2))
pathMaze1.addControlPoint(4, pos=startPos,euler=(90,0,0),scale=(2,2,2))
pathMaze1.addControlPoint(6, pos=(0,1.4,-8),euler=(0,0,0),scale=(2,2,2))
pathMaze1.addControlPoint(8, pos=(0,1.4,5),euler=(0,0,0),scale=(2,2,2))
#Duation of animation
pathMaze1Duration = pathMaze1.getDuration()
def animation():
link = viz.link(pathMaze1,view)
pathMaze1.play()
yield viztask.waitTime(pathMaze1Duration)
pathMaze1.reset()
def maze1trial():
print 'now'
view.setPosition(startPos)
maze1.visible(viz.ON)
yield animation()
#yield viztask.waitKeyDown([viz.KEY_LEFT,viz.KEY_RIGHT])
maze1.visible(viz.OFF)
def masterFunction():
for x in range(4):
yield maze1trial()
viztask.schedule(masterFunction())