def __init__(self): self.itemID = 0 self.switchState = True self.iAktion = "E" self.altIPos = [0, 0] self.switchCam = False self.kampf = Battle.Kampf() self.itemDa = False self.keyMap = { "left": 0, "right": 0, "forward": 0, "cam-left": 0, "cam-right": 0 } base.win.setClearColor(Vec4(0, 0, 0, 1)) self.environ = loader.loadModel("models/world") self.environ.reparentTo(render) self.environ.setPos(0, 0, 0) self.spieler = Players.Player(Actor("models/box.x")) self.spieler.actor.reparentTo(render) spielerStartPos = (-107.575, 26.6066, -0.490075) self.spieler.actor.setPos(spielerStartPos) self.textObjectSpieler = OnscreenText( text=self.spieler.name + ": " + str(self.spieler.energie) + "/" + str(self.spieler.maxenergie) + " HP", pos=(-0.90, -0.98), scale=0.07, fg=(1, 0, 0, 1)) # Erstellt Gegner self.gegnerStartPos = ([ (-39.1143569946, 25.1781406403, -0.136657714844), (-102.375793457, -30.6321983337, 0.0), (-56.927986145, -34.6329650879, -0.16748046875), (-79.6673126221, 30.8231620789, 2.89721679688), (-4.37648868561, 30.5158863068, 2.18450927734), (22.6527004242, 4.99837779999, 3.11364746094), (-23.8257598877, -7.87773084641, 1.36920166016), (-80.6140823364, 19.5769443512, 4.70764160156), (-75.0773696899, -15.2991075516, 6.24676513672) ]) gegnerPos = random.choice(self.gegnerStartPos) self.gegnerErstellen(gegnerPos) self.textObjectGegner = OnscreenText( text=str(self.gegner.name) + ": " + str(self.gegner.energie) + "/" + str(self.gegner.maxenergie) + " HP", pos=(0.90, -0.98), scale=0.07, fg=(1, 0, 0, 1)) self.floater = NodePath(PandaNode("floater")) self.floater.reparentTo(render) self.item = None # Handling der Usereingaben für Bewegung self.accept("escape", sys.exit) self.accept("arrow_left", self.setKey, ["left", 1]) self.accept("arrow_right", self.setKey, ["right", 1]) self.accept("arrow_up", self.setKey, ["forward", 1]) self.accept("a", self.setKey, ["cam-left", 1]) self.accept("s", self.setKey, ["cam-right", 1]) self.accept("i", self.setKey, ["inventar", 1]) self.accept("arrow_left-up", self.setKey, ["left", 0]) self.accept("arrow_right-up", self.setKey, ["right", 0]) self.accept("arrow_up-up", self.setKey, ["forward", 0]) self.accept("a-up", self.setKey, ["cam-left", 0]) self.accept("s-up", self.setKey, ["cam-right", 0]) self.accept("e", self.iAktionsHandler, ["e"]) self.accept("v", self.iAktionsHandler, ["v"]) self.accept("w", self.iAktionsHandler, ["w"]) taskMgr.add(self.move, "moveTask") taskMgr.add(self.erkenneKampf, "Kampferkennung") taskMgr.add(self.screentexts, "Screentexte") # Menü erstellen self.createMenu() # Kameraeinstellungen base.disableMouse() base.camera.setPos(self.spieler.actor.getX(), self.spieler.actor.getY() + 10, 2) self.collisionInit() self.setAI() # Licht ambientLight = AmbientLight("ambientLight") ambientLight.setColor(Vec4(.3, .3, .3, 1)) directionalLight = DirectionalLight("directionalLight") directionalLight.setDirection(Vec3(-5, -5, -5)) directionalLight.setColor(Vec4(1, 1, 1, 1)) directionalLight.setSpecularColor(Vec4(1, 1, 1, 1)) render.setLight(render.attachNewNode(ambientLight)) render.setLight(render.attachNewNode(directionalLight)) # Hintergrund (Himmel) self.setupSkySphere()