View Single Post
  #4  
Old 08-01-2014, 02:10 AM
Frank Verberne Frank Verberne is offline
Member
 
Join Date: Mar 2008
Location: Netherlands
Posts: 148
When posting code, please use the code tags by clicking the hashtag symbol (#), as it keeps indentation which is essential for python code. This should do the trick, every sensor has it's own text that becomes visible when entering the sensor area:
Code:
import vizmat
import vizact
import vizproximity
import vizdlg

viz.go()
viz.setMultiSample(4)
viz.fov(60)
viz.clearcolor(viz.SKYBLUE)
viz.collision(viz.ON)

ground = viz.add('tut_ground.wrl') # PISO
ground.collidePlane()

COMPLEJO01 = viz.addChild('sky_day.osgb')
COMPLEJO01.collideMesh()

viz.MainView.move([0,0,-5]) #Mi primera posición

#GRAVEDAD
viz.phys.enable()
viz.phys.setGravity(0,-9.8,0)

#Create proximity manager
manager = vizproximity.Manager()
manager.setDebug(viz.ON)

#Add main viewpoint as proximity target
target = vizproximity.Target(viz.MainView)
manager.addTarget(target)

##############PANEL DE INFORMACIÓN#########
myPanel = vizdlg.Panel()
viz.link(viz.CenterCenter,myPanel,offset=(-350,50,0))
myPanel.enable()

##############ACCIONES DEL SENSOR###################
#CREANDO ACCIÓN CUANDO ENTRE ACTIVO EL SENSOR
def EnterProximity(e):
	global myPanel
	myPanel.reset()
	myPanel.visible(viz.ON)
	model=e.sensor.getSourceObject()
	posicion=str(model.getPosition())
	posicion=viz.addText('Posición: '+posicion)
	#I would like the text will be variable
	#The text panel is cleaned before it appears
	e.sensor.text.visible(viz.ON)
	myPanel.addItem(posicion,align=vizdlg.ALIGN_CENTER)
##############I WOULD LIKE THAT TEXT1 WILL BE VARIABLE#######

#CAMBIANDO LA ACCIÓN CUANDO EL USUARIO SE ALEJA
def ExitProximity(e):
	global myPanel
	myPanel.visible(viz.OFF)
	e.sensor.text.visible(viz.OFF)

class house():
	def __init__(self, object, text, position):
		self.obj = viz.add(object, pos = position)
		self.obj.collideBox()
		sensor = vizproximity.addBoundingSphereSensor(self.obj,scale= 5)
		sensor.text = viz.addText(text,parent = self.obj)
		sensor.text.visible(viz.OFF)
		manager.addSensor(sensor)

house1 = house('box.wrl', 'house1', [-10,0,-20])
house2 = house('ball.wrl', 'house2', [0,0,0])
house3 = house('duck.wrl', 'house3', [10,0,20])

manager.onEnter(None,EnterProximity)
manager.onExit(None,ExitProximity)
Reply With Quote