Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from direct.directbase import DirectStart
- from pandac.PandaModules import *
- smiley = loader.loadModel('smiley')
- smiley.reparentTo(render)
- smiley.setTag('pickable', '')
- pickerNode = CollisionNode('mouseRay')
- pickerNP = camera.attachNewNode(pickerNode)
- pickerNode.setFromCollideMask(GeomNode.getDefaultCollideMask())
- pickerRay = CollisionRay()
- pickerNode.addSolid(pickerRay)
- pickerNP.show()
- rayQueue = CollisionHandlerQueue()
- traverser = CollisionTraverser()
- traverser.addCollider(pickerNP, rayQueue)
- def pickObject():
- if base.mouseWatcherNode.hasMouse():
- mpos = base.mouseWatcherNode.getMouse()
- pickerRay.setFromLens(base.camNode, mpos.getX(), mpos.getY())
- traverser.traverse(render)
- if rayQueue.getNumEntries() > 0:
- rayQueue.sortEntries()
- entry = rayQueue.getEntry(0)
- pickedNP = entry.getIntoNodePath()
- if pickedNP.hasNetTag('pickable'):
- print 'Clicked on the nodepath (with tag "pickable"): %s' % pickedNP
- base.accept('mouse1', pickObject)
- base.disableMouse() #- Disable default camera driver
- camera.setY(camera, -10) #- Move the camera back a lil bit so we can see the smiley
- run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement