Hi, i was trying to do some kind of program where the TPS version of reaming ralph (the one founded here in the forum) uses clicking in 2d objects to do some shooting or something like that, to make it look more like a TPS, for now i was trying to make it work so all a want is that when i click anywhere print “shoot”, but it doesnt work maybe i am doing something wrong
...
self.accept("mouse1", self.shoot)
#Collision to the ray
self.picker = CollisionTraverser()
self.pq = CollisionHandlerQueue()
self.pickerNode = CollisionNode('mouseRay')
self.pickerNP = self.c_node.attachNewNode(self.pickerNode)
self.pickerNode.setFromCollideMask(BitMask32.bit(0))
self.pickerNode.setIntoCollideMask(BitMask32.allOff())
self.pickerRay = CollisionRay()
self.pickerNode.addSolid(self.pickerRay)
self.picker.addCollider(self.pickerNP, self.pq)
def shoot(self):
#self.mpos=base.mouseWatcherNode.getMouse()
#im using 800,600 so i used 400, 300 just to be sure
self.pickerRay.setFromLens(base.camNode, 400, 300)
self.picker.traverse(render)
if self.pq.getNumEntries() > 0:
self.pq.sortEntries()
self.pickedObj=self.pq.getEntry(0).getIntoNodePath()
#self.pickedObj=self.pickedObj.findNetTag('coll')
if not self.pickedObj.isEmpty():
print "shoot"
it execute without error but doesnt print anything