Advertisement
Guest User

Panda3D Code

a guest
Nov 28th, 2014
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.45 KB | None | 0 0
  1. from direct.showbase.ShowBase import ShowBase
  2. from direct.showbase.DirectObject import DirectObject
  3. from direct.actor.Actor import Actor
  4.  
  5. class World(ShowBase, DirectObject):
  6.  
  7.     def __init__(self):
  8.  
  9.         ShowBase.__init__(self)
  10.  
  11.         self.keyMap = {"w" : False,
  12.                        "s" : False,
  13.                        "a" : False,
  14.                        "d" : False}
  15.  
  16.         self.accept("w", self.setKey, ["w", True])
  17.         self.accept("s", self.setKey, ["s", True])
  18.         self.accept("a", self.setKey, ["a", True])
  19.         self.accept("d", self.setKey, ["d", True])
  20.         self.accept("w-up", self.setKey, ["w", False])
  21.         self.accept("s-up", self.setKey, ["s", False])
  22.         self.accept("a-up", self.setKey, ["a", False])
  23.         self.accept("d-up", self.setKey, ["d", False])
  24.  
  25.         base.disableMouse()
  26.  
  27.         self.loadModels()
  28.  
  29.         taskMgr.add(self.moveModel, "Model Control")
  30.         taskMgr.add(self.controlCam, "Camera Control")
  31.  
  32.     def moveModel(self, task):
  33.  
  34.         if self.keyMap["w"]:
  35.             self.panda.setY(self.panda, -1.5)
  36.            
  37.             if self.panda.getCurrentAnim() != "walk":
  38.                 self.panda.loop("walk")
  39.                
  40.         if self.keyMap["s"]:
  41.             self.panda.setY(self.panda, 1)
  42.            
  43.             if self.panda.getCurrentAnim() != "walk":
  44.                 self.panda.loop("walk")
  45.  
  46.         if self.keyMap["w"] == False:
  47.             if self.keyMap["s"] == False:
  48.                 self.panda.stop("walk")
  49.  
  50.         if self.keyMap["a"]:
  51.             self.panda.setH(self.panda, 1)
  52.  
  53.         if self.keyMap["d"]:
  54.             self.panda.setH(self.panda, -1)
  55.  
  56.         return task.cont
  57.    
  58.     def controlCam(self, task):
  59.  
  60.         self.camera.setX(self.panda, 0)
  61.         self.camera.setY(self.panda, 2500)
  62.         self.camera.setZ(self.panda, 500)
  63.         self.camera.setH(self.panda, 180)
  64.  
  65.         return task.cont
  66.  
  67.     def setKey(self, key, value):
  68.  
  69.         self.keyMap[key] = value
  70.  
  71.     def loadModels(self):
  72.  
  73.         self.panda = Actor("models/panda-model",
  74.                            {"walk": "models/panda-walk4"})
  75.         self.panda.reparentTo(render)
  76.         self.panda.setScale(0.005)
  77.         self.panda.setPos(0, 20, 0)
  78.  
  79.         self.environ = loader.loadModel("models/environment")
  80.         self.environ.reparentTo(render)
  81.         self.environ.setScale(0.25)
  82.         self.environ.setPos(0, 60, 0)
  83.  
  84. app = World()
  85. app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement