Hello, this example is not clear to me and some explanation would be so helpful. Supposing I have loaded my forces and physics correctly, I can not tell how to connect these objects to the physicscollisionhandler.
To be more clear where do I attach my model and / or actor node to the physics collision handler in this example?
anp = render.attachNewNode(ActorNode('actor'))
fromObject = anp.attachNewNode(CollisionNode('colNode'))
fromObject.node().addSolid(CollisionSphere(0, 0, 0, 1))
pusher = PhysicsCollisionHandler()
pusher.addCollider(fromObject, anp)
My own code is below if my question is ill informed;
self.m = loader.loadModel('sf1_v3.egg')
self.m.setPos(x, y, z)
mss = 1
self.m.setScale(mss, mss, mss)
self.m.reparentTo(render)
# Physics Set-up
self.p = NodePath(PandaNode("pnode"))
self.p.reparentTo(render)
self.pn = ActorNode('mphysics')
self.pnn = self.p.attachNewNode(self.pn)
base.physicsMgr.attachPhysicalNode(self.pn)
self.m.reparentTo(self.pnn)
# Physics mod
self.pn.getPhysicsObject().setMass(100)
# FORCES
# Gravity
self.g = ForceNode('world-forces')
self.gn = render.attachNewNode(self.g)
self.gf = LinearVectorForce(0, 0, -0.05)
self.g.addForce(self.gf)
base.physicsMgr.addLinearForce(self.gf)
self.arr = [-1.5, 1.5]
self.d1 = self.rn.random() + self.arr[self.rn.randint(0, 1)]
self.d2 = self.rn.random() + self.arr[self.rn.randint(0, 1)]
self.d3 = self.rn.random() + self.arr[self.rn.randint(0, 1)]
# Collision Physics
self.floor = loader.loadModel('floors')
self.floor.setScale(100, 100, 1)
self.floor.hide()
self.floor.reparentTo(render)
modelpch = render.attachNewNode(ActorNode('mphysics'))
floorpch = modelpch.attachNewNode(CollisionNode('mphysics'))
floorpch.node().addSolid(CollisionSphere(0, 0, 0, 10))
pusher = PhysicsCollisionHandler()
pusher.addCollider(floorpch, modelpch)
floorpch.show()