Can anyone help me? My actor is not acting. Here is the code:
from direct.showbase.ShowBase import ShowBase
from direct.task import Task
from direct.actor.Actor import Actor
from random import randint
class Game(ShowBase):
def __init__(self):
ShowBase.__init__(self)
#self.disableMouse()
self.scene = self.loader.loadModel("models/environment")
self.scene.setScale(0.25, 0.25, 0.25)
self.scene.setPos(-8, 42, 0)
self.scene.reparentTo(self.render)
self.rex = Actor("models/trex", {"eat":"models/trex-eat", "run":"models/trex-run"})
self.rex.reparentTo(self.render)
self.rex.loop("run")
self.taskMgr.add(self.thirdPersonController, "ThirdPersonController")
self.keyMap = {"front" : False, "back" : False, "left" : False, "right" : False}
self.accept("w", self.updateKeyMap, ["front", True])
self.accept("w-up", self.updateKeyMap, ["front", False])
self.accept("a", self.updateKeyMap, ["left", True])
self.accept("a-up", self.updateKeyMap, ["left", False])
self.accept("s", self.updateKeyMap, ["back", True])
self.accept("s-up", self.updateKeyMap, ["back", False])
self.accept("d", self.updateKeyMap, ["right", True])
self.accept("d-up", self.updateKeyMap, ["right", False])
self.taskMgr.add(self.move, "move")
babyDinos = {}
bigDinos = {}
for i in range(10):
xpos = randint(-80, 80)
ypos = randint(-80, 80)
babyDinos["dino" + str(i)] = Actor("models/babyd", {"anim" : "models/babydani"})
babyDinos["dino" + str(i)].setPos(xpos, ypos, 25)
babyDinos["dino" + str(i)].reparentTo(self.render)
babyDinos["dino" + str(i)].loop("anim")
for i in range(10):
xpos = randint(-80, 80)
ypos = randint(-80, 80)
bigDinos["dino" + str(i)] = Actor("models/bigd", {"anim" : "models/bigdani"})
bigDinos["dino" + str(i)].setPos(xpos, ypos, 0)
bigDinos["dino" + str(i)].reparentTo(self.render)
bigDinos["dino" + str(i)].loop("anim")
def updateKeyMap(self, key, value):
self.keyMap[key] = value
def move(self, task):
if self.keyMap["front"]:
self.rex.setY(self.rex, -1.25)
if self.keyMap["left"]:
self.rex.setH(self.rex, 1.25)
if self.keyMap["back"]:
self.rex.setY(self.rex, 1.25)
if self.keyMap["right"]:
self.rex.setH(self.rex, -1.25)
return Task.cont
def thirdPersonController(self, task):
self.camera.setX(self.rex, 1)
self.camera.setY(self.rex, 40)
self.camera.setZ(self.rex, 64)
self.camera.setH(self.rex.getH() + 180)
self.camera.setP(-45)
return Task.cont
game = Game()
game.run()