I have set up walls in Panda3D, which I am quite new to. However, the panda doesn’t collide with them, and I am not sure why. Here is the code I think is relevant:
wallSolid = CollisionTube(-60.0, 0, 0, 60.0, 0, 0, 1)
wallNode = CollisionNode("wall")
wallNode.addSolid(wallSolid)
wall = render.attachNewNode(wallNode)
wall.setY(50.0)
wall.show()
wallSolid = CollisionTube(-60.0, 0, 0, 60.0, 0, 0, 1)
wallNode = CollisionNode("wall")
wallNode.addSolid(wallSolid)
wall = render.attachNewNode(wallNode)
wall.setY(-40.0)
wall.show()
wallSolid = CollisionTube (0, -60.0, 0, 0,60.0, 0, 1)
wallNode = CollisionNode("wall")
wallNode.addSolid(wallSolid)
wall = render.attachNewNode(wallNode)
wall.setX(60.0)
wall.show()
wallSolid = CollisionTube(0,-60.0, 0, 0, 60.0, 0, 1)
wallNode = CollisionNode("wall")
wallNode.addSolid(wallSolid)
wall = render.attachNewNode(wallNode)
wall.setX(-60.0)
wall.show()
#This adds a collision node, so that collisions can registered
pcColNode = CollisionNode(colliderName)
#this assigns a sphere shaped collision box
pcColNode.addSolid(CollisionSphere(0,0,0,6))
self.collider = self.entityInstance.attachNewNode(pcColNode)
self.collider.show()
#This handles the response to collisions
base.collisionHandler.addCollider(self.collider,self.entityInstance)
#this handles the detection of collisions
base.collisionDetector.addCollider(self.collider,base.collisionHandler)
#this detects when collisions happen
self.collisionDetector = CollisionTraverser()
#this dictates how the program responds when a collision happens
self.collisionHandler = CollisionHandlerPusher()