Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from direct.showbase.ShowBase import ShowBase
- from direct.showbase.DirectObject import DirectObject
- from direct.actor.Actor import Actor
- class World(ShowBase, DirectObject):
- def __init__(self):
- ShowBase.__init__(self)
- self.keyMap = {"w" : False,
- "s" : False,
- "a" : False,
- "d" : 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])
- base.disableMouse()
- self.loadModels()
- taskMgr.add(self.moveModel, "Model Control")
- taskMgr.add(self.controlCam, "Camera Control")
- def moveModel(self, task):
- if self.keyMap["w"]:
- self.panda.setY(self.panda, -1.5)
- if self.panda.getCurrentAnim() != "walk":
- self.panda.setPlayRate(1, "walk")
- self.panda.loop("walk")
- if self.keyMap["s"]:
- self.panda.setY(self.panda, 1)
- if self.panda.getCurrentAnim() != "walk":
- self.panda.setPlayRate(-1, "walk")
- self.panda.loop("walk")
- if self.keyMap["w"] == False:
- if self.keyMap["s"] == False:
- self.panda.stop("walk")
- if self.keyMap["a"]:
- self.panda.setH(self.panda, 1)
- if self.keyMap["d"]:
- self.panda.setH(self.panda, -1)
- return task.cont
- def controlCam(self, task):
- self.camera.setX(self.panda, 0)
- self.camera.setY(self.panda, 2500)
- self.camera.setZ(self.panda, 500)
- self.camera.setH(self.panda, 180)
- return task.cont
- def setKey(self, key, value):
- self.keyMap[key] = value
- def loadModels(self):
- self.panda = Actor("models/panda-model",
- {"walk": "models/panda-walk4"})
- self.panda.reparentTo(render)
- self.panda.setScale(0.005)
- self.panda.setPos(0, 20, 0)
- self.environ = loader.loadModel("models/environment")
- self.environ.reparentTo(render)
- self.environ.setScale(0.25)
- self.environ.setPos(0, 60, 0)
- app = World()
- app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement