can sombody tell me why this isn’t working, I am getting this error:
C:\Panda3D-1.6.2\mystuff>ppython loc.py
DirectStart: Starting the game.
Known pipe types:
wglGraphicsPipe
(all display modules loaded.)
Assertion failed: !collider.is_empty() && collider.node()->is_of_type(CollisionN
ode::get_class_type()) at line 111 of c:\p\p3d\panda3d-1.6.2\panda\src\collide\c
ollisionTraverser.cxx
Traceback (most recent call last):
File "loc.py", line 73, in <module>
base.cTrav .addCollider(m, handler)
AssertionError: !collider.is_empty() && collider.node()->is_of_type(CollisionNod
e::get_class_type()) at line 111 of c:\p\p3d\panda3d-1.6.2\panda\src\collide\col
lisionTraverser.cxx
and this is my code in python:
import direct.directbase.DirectStart
from pandac.PandaModules import *
from direct.showbase import DirectObject
from direct.task import Task
from direct.actor import Actor
from direct.interval.IntervalGlobal import *
from direct.gui.OnscreenText import OnscreenText
from direct.task.Task import Task
import math
#Load the first environment model
m = loader.loadModel("models/teapot")
m.reparentTo(render)
m.setScale(0.25,0.25,0.25)
m.setPos(-8,42,5)
m.setH(m,-90)
#Load the first environment model
s = loader.loadModel("models/teapot")
s.reparentTo(render)
s.setScale(0.5,0.5,0.5)
s.setPos(0,42,5)
#
#Collision traverser:
#
base.cTrav = CollisionTraverser('traverser name')
#
segment = CollisionSegment(0, 0, 0, 0, 10, 0)
cnodePath5 = m.attachNewNode(CollisionNode('cnode5'))
cnodePath5.node().addSolid(segment)
#cnodePath5.show()
#
sphere = CollisionSphere(0, 0, 0, 4)
cnodePath = s.attachNewNode(CollisionNode('cnode1'))
cnodePath.node().addSolid(sphere)
#cnodePath.show()
#
#Collision handler:
#
handler = CollisionHandlerEvent()
handler.addInPattern('cnode5-into-cnode1')
class MyObject(DirectObject.DirectObject):
def __init__(self):
self.accept('cnode5-into-cnode1', self.handler)
def handler(self, entry):
print 'entry'
#
#Movement task:
#
def movementktask(task):
m.setPos(m,0,0.1,0)
return task.again
taskMgr.add(movementktask, 'movement1')
#
base.cTrav .addCollider(m, handler)
#
h = MyObject()
traverser()
run()