View Single Post
  #1  
Old 04-05-2015, 09:08 AM
sportykourty sportykourty is offline
Member
 
Join Date: Mar 2015
Posts: 4
Question Error Changing Scenes

I'm trying to have my program change scenes once I enter a proximity sensor. I keep receiving an error. Any ideas what i'm doing wrong?

Code:
import viz
import vizact
import vizproximity

viz.setMultiSample(4)
viz.go()

############# Movement Control Code###################
#Script to control viewpoint with keyboard arrow keys
MOVE_SPEED = 900
TURN_SPEED = 60

def updatecar():
	#move view forward and backward
	if viz.key.isDown(viz.KEY_UP):
			view.move([MOVE_SPEED*viz.elapsed(),0,0],viz.BODY_ORI)
	if viz.key.isDown(viz.KEY_DOWN):
			view.move([-MOVE_SPEED*viz.elapsed(),0,0],viz.BODY_ORI)
	if viz.key.isDown(viz.KEY_TAB):
			view.move([0,MOVE_SPEED*viz.elapsed(),0],viz.BODY_ORI)
	if viz.key.isDown(viz.KEY_SHIFT_L):
			view.move([0,-MOVE_SPEED*viz.elapsed(),0],viz.BODY_ORI) 

	#rotate body of view left and right
	if viz.key.isDown(viz.KEY_RIGHT):
			view.setEuler([TURN_SPEED*viz.elapsed(),0,0],viz.BODY_ORI,viz.REL_PARENT)
	elif viz.key.isDown(viz.KEY_LEFT):
			view.setEuler([-TURN_SPEED*viz.elapsed(),0,0],viz.BODY_ORI,viz.REL_PARENT)
vizact.ontimer(0,updatecar)

########### Viewpoint Code #################
#Start collision detection
viz.MainView.collision( viz.ON )
view = viz.MainView

#Get rid of gravity. 
viz.MainView.gravity(0)

#Set the viewpoint.
viz.MainView.setPosition(88,0,-443)

#Viewpoint
view = viz.MainView

#Actual Viewpoint
view.setPosition([-7034, 200, -10775])
view.setEuler([90, 0, 0])

mars = viz.add('gallery.osgb',scene = viz.Scene1)
viz.addChild('dojo.osgb',scene=viz.Scene2)

manager = vizproximity.Manager()
manager.setDebug(True)
manager.addTarget( vizproximity.Target(viz.MainView) )

# Create sensor using bounding box of node
node = viz.addChild('plant.osgb',pos=(-4034, 0, -10775),scale=(1000,1000,1000))
node.addAction(vizact.spin(0,1,0,45,viz.FOREVER))
sensor = vizproximity.addBoundingBoxSensor(node)
manager.addSensor(sensor)

def changeScene(scene):
	viz.MainWindow.setScene(scene)
	if scene == viz.Scene2:
		viz.MainView.setPosition([0,1.8,0])
		viz.MainView.setEuler([90,0,0])
	
manager.onEnter(None, changeScene)
Reply With Quote