CollisionQueueHandle() not generate list

Hello everybody.

I am new on panda3d, so I need a support on collision queue.
In my software, when I run in main application the software recognize a list o collision, when i Run in a support script, the list is empty.

Below follow part of my code.

def _init_
self.cTrav = CollisionTraverser()
self.cHandler = CollisionHandlerQueue()
self.cTrav.addCollider(self.ballSphere, self.cHandler)
self.cTrav.addCollider(self.ballGroundColNp, self.cHandler)

def start(self, data_solid, data_ball, ball, score):
        # The maze model also has a locator in it for where to start the ball
        # To access it we use the find command
        #startPos = self.score.find("**/start").getPos()
        # Set the ball in the starting position
        #self.ballRoot.setPos(1,0,0)
        self.ballV = LVector3(0, 0, 0)         # Initial velocity is 0
        self.accelV = LVector3(0, 0, 0)        # Initial acceleration is 0
        self.timenow = datetime.datetime.now()
        self.future = datetime.datetime.now() + datetime.timedelta(minutes=5)

        # Create the movement task, but first make sure it is not already
        # running
        taskMgr.remove("rollTask")
        self.mainLoop = taskMgr.add(self.rollTask, "rollTask")

def rollTask(self, task):

print self.cHandler.getNumEntries()
        for i in range(self.cHandler.getNumEntries()):
            print i
            entry = self.cHandler.getEntry(i)
            print entry.getIntoNode().getName()
            name = entry.getIntoNode().getName()
            if name == "wall_collide":
                self.wallCollideHandler(entry)
            elif name == "ground":
                self.groundCollideHandler(entry)
            elif name == "loseTrigger":
                self.loseGame(entry)
return Task.cont

BR

Raphael

Are the print statements causing anything to be printed out? It’s not quite clear what you mean when you say it’s not generating a list - I don’t see any list variable being used in your code.

Keep in mind that either you need to assign the CollisionTraverser to base.cTrav (not needed if you use self.cTrav and your class inherits from ShowBase) to make it traverse traverse automatically each frame, or you need to call self.cTrav.traverse(render) each frame.

@rdb - The list that I was saying is the list of objects inside self.cHandler.getNumEntries()).

Your comment worked totally for me, I put self.cTrav.traverse(render) inside the main task and it work perfectly. I did not know that was necessay for update each frame.

BR and thanks again

Raphael