Advertisement
Guest User

Panda3D Code

a guest
Nov 28th, 2014
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.55 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.setPlayRate(1, "walk")
  39.                 self.panda.loop("walk")
  40.                
  41.         if self.keyMap["s"]:
  42.             self.panda.setY(self.panda, 1)
  43.            
  44.             if self.panda.getCurrentAnim() != "walk":
  45.                 self.panda.setPlayRate(-1, "walk")
  46.                 self.panda.loop("walk")
  47.  
  48.         if self.keyMap["w"] == False:
  49.             if self.keyMap["s"] == False:
  50.                 self.panda.stop("walk")
  51.  
  52.         if self.keyMap["a"]:
  53.             self.panda.setH(self.panda, 1)
  54.  
  55.         if self.keyMap["d"]:
  56.             self.panda.setH(self.panda, -1)
  57.  
  58.         return task.cont
  59.    
  60.     def controlCam(self, task):
  61.  
  62.         self.camera.setX(self.panda, 0)
  63.         self.camera.setY(self.panda, 2500)
  64.         self.camera.setZ(self.panda, 500)
  65.         self.camera.setH(self.panda, 180)
  66.  
  67.         return task.cont
  68.  
  69.     def setKey(self, key, value):
  70.  
  71.         self.keyMap[key] = value
  72.  
  73.     def loadModels(self):
  74.  
  75.         self.panda = Actor("models/panda-model",
  76.                            {"walk": "models/panda-walk4"})
  77.         self.panda.reparentTo(render)
  78.         self.panda.setScale(0.005)
  79.         self.panda.setPos(0, 20, 0)
  80.  
  81.         self.environ = loader.loadModel("models/environment")
  82.         self.environ.reparentTo(render)
  83.         self.environ.setScale(0.25)
  84.         self.environ.setPos(0, 60, 0)
  85.  
  86. app = World()
  87. app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement