Thread: multiple timers
View Single Post
  #1  
Old 06-01-2006, 01:50 PM
paulpars paulpars is offline
Member
 
Join Date: May 2006
Location: Kingston, Ontario
Posts: 14
multiple timers

i have two timers, one that listens for certain keyboard input, and another that makes a person walk around in my world. I want the first one to be always on, but is there a way to make the second one start after a certain elapsed time, say 5 seconds or so? here's what my timer function looks like:

Code:
def mytimer(num):
	if num == 0:
		brake = 0
		if viz.iskeydown(viz.KEY_TAB):
			brake = 1
		if viz.iskeydown(viz.KEY_UP) and brake != 1:
			view.move(0,0,MOVE_SPEED*viz.elapsed(),viz.BODY_ORI)
			car2.translate(0,0,MOVE_SPEED*viz.elapsed(),viz.RELATIVE)
		elif viz.iskeydown(viz.KEY_DOWN):
			view.move(0,0,-MOVE_SPEED*viz.elapsed(),viz.BODY_ORI)
			car2.translate(0,0,-MOVE_SPEED*viz.elapsed(),viz.RELATIVE)
		if viz.iskeydown(viz.KEY_RIGHT):
			view.rotate(0,1,0,TURN_SPEED*viz.elapsed(),viz.BODY_ORI,viz.RELATIVE_WORLD)
		elif viz.iskeydown(viz.KEY_LEFT):
			view.rotate(0,1,0,-TURN_SPEED*viz.elapsed(),viz.BODY_ORI,viz.RELATIVE_WORLD)
		updatecar()
	# puts the walker on the screen	
	if num == 1:
		walker.visible(viz.ON)
		global walkerX, walkerY, walkerZ, walkerAngle
		walker.rotate(0,1,0,90)
		# calculate components of motion w.r.t X and Z axis
		walkerZ = walkerZ - 0.00002 * math.sin(math.radians(walkerAngle))
		walkerX = walkerX + 0.00002 * math.cos(math.radians(walkerAngle))
		# move the walker
		walker.translate(walkerX,walkerY,walkerZ,viz.RELATIVE)

		

viz.callback(viz.TIMER_EVENT,mytimer)
viz.starttimer(0,0.01,viz.FOREVER)
viz.starttimer(1,0,viz.PERPETUAL)
Reply With Quote