Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.17 KB | None | 0 0
  1. from direct.directbase import DirectStart
  2. from pandac.PandaModules import *
  3.  
  4. smiley = loader.loadModel('smiley')
  5. smiley.reparentTo(render)
  6. smiley.setTag('pickable', '')
  7.  
  8. pickerNode = CollisionNode('mouseRay')
  9. pickerNP = camera.attachNewNode(pickerNode)
  10. pickerNode.setFromCollideMask(GeomNode.getDefaultCollideMask())
  11. pickerRay = CollisionRay()
  12. pickerNode.addSolid(pickerRay)
  13. pickerNP.show()
  14. rayQueue = CollisionHandlerQueue()
  15. traverser = CollisionTraverser()
  16. traverser.addCollider(pickerNP, rayQueue)
  17.  
  18. def pickObject():
  19.    if base.mouseWatcherNode.hasMouse():
  20.       mpos = base.mouseWatcherNode.getMouse()
  21.       pickerRay.setFromLens(base.camNode, mpos.getX(), mpos.getY())
  22.       traverser.traverse(render)
  23.       if rayQueue.getNumEntries() > 0:
  24.          rayQueue.sortEntries()
  25.          entry = rayQueue.getEntry(0)
  26.          pickedNP = entry.getIntoNodePath()
  27.          if pickedNP.hasNetTag('pickable'):
  28.             print 'Clicked on the nodepath (with tag "pickable"): %s' % pickedNP
  29.  
  30. base.accept('mouse1', pickObject)
  31. base.disableMouse() #- Disable default camera driver
  32. camera.setY(camera, -10) #- Move the camera back a lil bit so we can see the smiley
  33. run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement