Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from direct.showbase.ShowBase import ShowBase
- from direct.gui.DirectGui import *
- from pandac.PandaModules import *
- from direct.showbase.DirectObject import DirectObject
- class MyApp(ShowBase, DirectObject):
- def __init__(self):
- ShowBase.__init__(self)
- base.setBackgroundColor(0, 0, 0)
- base.disableMouse()
- self.keyMap = {"w" : False,
- "s" : False,
- "a" : False,
- "d" : False,
- "arrow-up" : False,
- "arrow-down" : False,
- "arrow-left" : False,
- "arrow-right" : False}
- self.accept("w", self.setKey, ["w", True])
- self.accept("s", self.setKey, ["s", True])
- self.accept("a", self.setKey, ["a", True])
- self.accept("d", self.setKey, ["d", True])
- self.accept("w-up", self.setKey, ["w", False])
- self.accept("s-up", self.setKey, ["s", False])
- self.accept("a-up", self.setKey, ["a", False])
- self.accept("d-up", self.setKey, ["d", False])
- self.accept("arrow-up", self.setKey, ["arrow-up", True])
- self.accept("arrow-down", self.setKey, ["arrow-down", True])
- self.accept("arrow-left", self.setKey, ["arrow-left", True])
- self.accept("arrow-right", self.setKey, ["arrow-right", True])
- self.accept("arrow-up-up", self.setKey, ["arrow-up", False])
- self.accept("arrow-down-up", self.setKey, ["arrow-down", False])
- self.accept("arrow-left-up", self.setKey, ["arrow-left", False])
- self.accept("arrow-right-up", self.setKey, ["arrow-right", False])
- self.environment = self.loader.loadModel("models/environment")
- self.environment.reparentTo(self.render)
- self.environment.setPos(-5, 42, -3)
- self.environment.setScale(0.25, 0.25, 0.25)
- frame = DirectFrame(frameColor = (0, 0, 0, 0.5),
- frameSize = (-0.5, 0.5, -0.5, 0.5),
- pos = (-.82, 0, -.49))
- self.colNode1 = CollisionNode("colNode1")
- self.colSphere1 = CollisionSphere(0, 15, -2, 1)
- self.colNode1.addSolid(self.colSphere1)
- self.colNP1 = self.render.attachNewNode(self.colNode1)
- self.colNP1.show()
- self.colNode2 = CollisionNode("colNode2")
- self.colSphere2 = CollisionSphere(3, 15, -2, 1)
- self.colNode2.addSolid(self.colSphere2)
- self.colNP2 = self.render.attachNewNode(self.colNode2)
- self.colNP2.show()
- self.cTrav = CollisionTraverser()
- self.cHan = CollisionHandlerPusher()
- self.cTrav.addCollider(self.colNP1, self.cHan)
- self.cHan.addCollider(self.colNP1, self.colNP1)
- self.cTrav.addCollider(self.colNP2, self.cHan)
- self.cHan.addCollider(self.colNP2, self.colNP2)
- taskMgr.add(self.collision, "Collision Handler")
- taskMgr.add(self.move1, "Collision Node Controller 1")
- taskMgr.add(self.move2, "Collision Node Controller 2")
- def setKey(self, key, value):
- self.keyMap[key] = value
- def collision(self, task):
- self.cTrav.traverse(self.render)
- return task.cont
- def move1(self, task):
- if self.keyMap["arrow-up"]:
- self.colNP1.setY(self.colNP1, 0.01)
- if self.keyMap["arrow-down"]:
- self.colNP1.setY(self.colNP1, -0.01)
- if self.keyMap["arrow-left"]:
- self.colNP1.setX(self.colNP1, -0.01)
- if self.keyMap["arrow-right"]:
- self.colNP1.setX(self.colNP1, 0.01)
- return task.cont
- def move2(self, task):
- if self.keyMap["w"]:
- self.colNP2.setY(self.colNP2, 0.01)
- if self.keyMap["s"]:
- self.colNP2.setY(self.colNP2, -0.01)
- if self.keyMap["a"]:
- self.colNP2.setX(self.colNP2, -0.01)
- if self.keyMap["d"]:
- self.colNP2.setX(self.colNP2, 0.01)
- return task.cont
- app = MyApp()
- app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement