Advertisement
Guest User

Panda3D Code

a guest
Nov 26th, 2014
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.01 KB | None | 0 0
  1. from direct.showbase.ShowBase import ShowBase
  2. from direct.gui.DirectGui import *
  3. from pandac.PandaModules import *
  4. from direct.showbase.DirectObject import DirectObject
  5.  
  6. class MyApp(ShowBase, DirectObject):
  7.     def __init__(self):
  8.         ShowBase.__init__(self)
  9.  
  10.         base.setBackgroundColor(0, 0, 0)
  11.         base.disableMouse()
  12.  
  13.         self.keyMap = {"w" : False,
  14.                        "s" : False,
  15.                        "a" : False,
  16.                        "d" : False,
  17.                        "arrow-up" : False,
  18.                        "arrow-down" : False,
  19.                        "arrow-left" : False,
  20.                        "arrow-right" : False}
  21.  
  22.         self.accept("w", self.setKey, ["w", True])
  23.         self.accept("s", self.setKey, ["s", True])
  24.         self.accept("a", self.setKey, ["a", True])
  25.         self.accept("d", self.setKey, ["d", True])
  26.         self.accept("w-up", self.setKey, ["w", False])
  27.         self.accept("s-up", self.setKey, ["s", False])
  28.         self.accept("a-up", self.setKey, ["a", False])
  29.         self.accept("d-up", self.setKey, ["d", False])
  30.         self.accept("arrow-up", self.setKey, ["arrow-up", True])
  31.         self.accept("arrow-down", self.setKey, ["arrow-down", True])
  32.         self.accept("arrow-left", self.setKey, ["arrow-left", True])
  33.         self.accept("arrow-right", self.setKey, ["arrow-right", True])
  34.         self.accept("arrow-up-up", self.setKey, ["arrow-up", False])
  35.         self.accept("arrow-down-up", self.setKey, ["arrow-down", False])
  36.         self.accept("arrow-left-up", self.setKey, ["arrow-left", False])
  37.         self.accept("arrow-right-up", self.setKey, ["arrow-right", False])
  38.  
  39.         self.environment = self.loader.loadModel("models/environment")
  40.         self.environment.reparentTo(self.render)
  41.         self.environment.setPos(-5, 42, -3)
  42.         self.environment.setScale(0.25, 0.25, 0.25)
  43.  
  44.         frame = DirectFrame(frameColor = (0, 0, 0, 0.5),
  45.                             frameSize = (-0.5, 0.5, -0.5, 0.5),
  46.                             pos = (-.82, 0, -.49))
  47.  
  48.         self.colNode1 = CollisionNode("colNode1")
  49.         self.colSphere1 = CollisionSphere(0, 15, -2, 1)
  50.         self.colNode1.addSolid(self.colSphere1)
  51.         self.colNP1 = self.render.attachNewNode(self.colNode1)
  52.         self.colNP1.show()
  53.  
  54.         self.colNode2 = CollisionNode("colNode2")
  55.         self.colSphere2 = CollisionSphere(3, 15, -2, 1)
  56.         self.colNode2.addSolid(self.colSphere2)
  57.         self.colNP2 = self.render.attachNewNode(self.colNode2)
  58.         self.colNP2.show()
  59.  
  60.         self.cTrav = CollisionTraverser()
  61.         self.cHan = CollisionHandlerPusher()
  62.         self.cTrav.addCollider(self.colNP1, self.cHan)
  63.         self.cHan.addCollider(self.colNP1, self.colNP1)
  64.         self.cTrav.addCollider(self.colNP2, self.cHan)
  65.         self.cHan.addCollider(self.colNP2, self.colNP2)
  66.  
  67.         taskMgr.add(self.collision, "Collision Handler")
  68.         taskMgr.add(self.move1, "Collision Node Controller 1")
  69.         taskMgr.add(self.move2, "Collision Node Controller 2")
  70.  
  71.     def setKey(self, key, value):
  72.  
  73.         self.keyMap[key] = value
  74.  
  75.     def collision(self, task):
  76.  
  77.         self.cTrav.traverse(self.render)
  78.  
  79.         return task.cont
  80.  
  81.     def move1(self, task):
  82.  
  83.         if self.keyMap["arrow-up"]:
  84.             self.colNP1.setY(self.colNP1, 0.01)
  85.  
  86.         if self.keyMap["arrow-down"]:
  87.             self.colNP1.setY(self.colNP1, -0.01)
  88.  
  89.         if self.keyMap["arrow-left"]:
  90.             self.colNP1.setX(self.colNP1, -0.01)
  91.  
  92.         if self.keyMap["arrow-right"]:
  93.             self.colNP1.setX(self.colNP1, 0.01)
  94.  
  95.         return task.cont
  96.  
  97.     def move2(self, task):
  98.  
  99.         if self.keyMap["w"]:
  100.             self.colNP2.setY(self.colNP2, 0.01)
  101.  
  102.         if self.keyMap["s"]:
  103.             self.colNP2.setY(self.colNP2, -0.01)
  104.  
  105.         if self.keyMap["a"]:
  106.             self.colNP2.setX(self.colNP2, -0.01)
  107.  
  108.         if self.keyMap["d"]:
  109.             self.colNP2.setX(self.colNP2, 0.01)
  110.  
  111.         return task.cont
  112.  
  113. app = MyApp()
  114. app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement