将回调附加到事件循环
node.py
# This script is just a small debug script
# to demonstrate how to attach something into the event loop
print("Executing node script!")
newScene()
loadGeometry("$VRED_EXAMPLES/geo/teddy.osb")
calcVertexNormals()
class ActionBase:
_active = 0
def recEvent(self, state):
if state == SWITCH_TOGGLE:
self._active = 1 - self._active
else:
self._active = state
def loop(self):
print("abstract!")
def setActive(self, s):
self.recEvent(s)
def isActive(self):
return self._active
class Bug(vrAEBase):
#class Bug(ActionBase):
def __init__(self):
vrAEBase.__init__(self)
self.addLoop()
def loop(self):
if self.isActive() == true:
print("loop: nodename = ", self.node.getName(), " nodeid = ", self.node.getID())
# create callback object and attach a node to it
bug = Bug()
bug.node = findNode("Nose");
# define key m to toggle activation of the loop callback
keyM = vrKey(Key_M)
keyM.connect(bug, SWITCH_TOGGLE)
keyM.connect("print 'Toggled loop callback'")
print("press key m to toggle activation of the loop callback")
updateScene()
print("Ende")