![]() |
|
|
|
#1
|
|||
|
|||
|
Hi,
I've search through this and Vizard help for various timing hints but I still can't get the script to do exactly what I want. I basically want to start the timer on a mouse click (which will also start the stimulus running) and record/ print the time an object begins to move and stops moving (in milliseconds) - printing the object's x,y,z along with these times. Has anybody done this? Thank you. Jaclyn |
|
#2
|
|||
|
|||
|
Here is a sample script that waits for the left mouse button to be clicked then moves a ball while printing out the current time in milliseconds and its current position. Let me know if anything is unclear.
Code:
import viz
viz.go()
START_POS = [-4,2,10]
STOP_POS = [4,2,10]
ball = viz.add('ball.wrl')
ball.translate(START_POS)
def RecordTimer():
"""Prints out current time in milliseconds followed by ball position"""
currentTime = viz.tick()
pos = ball.getPosition()
print '%d %.4f %.4f %.4f'%(currentTime * 1000,pos[0],pos[1],pos[2])
import viztask
def RunSimulation():
#Repeat simulation indefinitely
while True:
#Wait for left mouse button to be pressed
yield viztask.waitMouseDown(viz.MOUSEBUTTON_LEFT)
#Place ball in starting position
ball.translate(START_POS)
#Start timer to record ball position
recordTimer = vizact.onupdate(0,RecordTimer)
#Wait for ball to finish move action
yield viztask.runAction(ball,vizact.moveTo(STOP_POS,speed=2))
#Stop timer
vizact.removeEvent(recordTimer)
viztask.schedule( RunSimulation() )
#Disable mouse navigation
viz.mouse(0)
|
|
#3
|
|||
|
|||
|
timing
Great, I've got it working fine now.
Thank you. Jac |
![]() |
|
|