12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # (c) Hochschule Anhalt, veröffentlicht unter MIT-Lizenz
- # Geist-Klasse
- # Autor: Viktor Lysow, Johannes Tümler
- # Letzte Änderung: 30.03.2022
- # Zweck: Geist-Entität definieren
- #
- # Geist erbt alles von Monster
- # können den Held bei Berührung töten
- # Geist kann neue Monster erschaffen, die wie Geister aussehen
- # Der Nachfolgende Codeblock "BLOCK1" sorgt dafür, dass man aus jeder Datei heraus das Hauptprogramm starten kann.
- # Dadurch kann man in jeder Datei auf "play" drücken und es wird automatisch main.py gestartet.
- if __name__=="__main__":
- import subprocess
- # Auf Linux oder Mac aktivieren Sie die folgende Zeile und deaktivieren Sie die Zeile danach:
- #subprocess.call("python3 main.py", shell=True) # die richtige Main-Datei aufrufen (unser eigentliches Hauptprogramm)
- subprocess.call("main.py", shell=True) # die richtige Main-Datei aufrufen (unser eigentliches Hauptprogramm)
- exit(0) # nun das Programm hier beenden .. wir wollen ja nur das Hauptprogramm starten und nicht *diese* Datei.
- # Ende "BLOCK1"
- import pygame
- from KlasseMonster import Monster
- from time import time
- from random import randint
- class Geist (Monster):
- #Liste der erschaffenen Monster
- def __init__(self, x, y, geschw, breite, hoehe, level, bildFigur, zeitMonster):
- super().__init__(x, y, geschw, breite, hoehe, level, bildFigur, zeitMonster)
- self.zeitUnsicht = zeitMonster
- self.bildUnsicht = [pygame.image.load("Bilder/Geist/tot.png"),
- pygame.image.load("Bilder/Geist/tot.png")]
- self.saveBildOben = self.bildOben
- self.saveBildUnten = self.bildUnten
- self.saveBildRechts = self.bildRechts
- self.saveBildLinks = self.bildLinks
- self.zeitSpring = zeitMonster
- def reset(self):
- self.x = self.xReset
- self.y = self.yReset
- self.leben = True
- self.heldTot = False
- def faehigkeit(self): #Fähigkeiten von Monstern werden mit den Fähigkeiten der Klasse überschrieben!!!
- self.toeten()
- self.duplizieren()
- def duplizieren(self): #einer der Geister wird sich verdoppeln, man weiß jedoch nicht, welcher!
- if time() - Monster.zeitDupl >= 0.5 * len(Monster.monsterListe): #Zeit zur Duplezierung wird jedes mal erhöht
- Monster.zeitDupl = time() #Zeit wird wieder auf Null gesetzt
- Monster.monsterListe.append(Geist(x = self.x, y = self.y, geschw = self.geschw, breite = self.breite, hoehe = self.hoehe, level = self.level, bildFigur = self.bildFigur, zeitMonster = time())) #Monster wird erschaffen und in die Liste eingefügt
|