12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # (c) Hochschule Anhalt, veröffentlicht unter MIT-Lizenz
- # Prinzessin-Klasse
- # Autor: Viktor Lysow
- # Letzte Änderung: 30.03.2022
- # Zweck: Definition der Prinzessin
- #
- # Prinzessin erbt Alles von Monster
- # Held stirbt wenn Prinzessin stirbt
- # Prinzesin kann Emotionen zeigen
- # 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 screen import screen
- from KlasseMonster import Monster
- from time import time
- import sounds
- class Prinzessin(Monster): # Eine Prinzessin ist ein Monster (aber ein besonderes)
- def __init__(self, x, y, geschw, breite, hoehe, level, bildFigur, zeitMonster):
- super().__init__(x, y, geschw, breite, hoehe, level, bildFigur, zeitMonster)
- self.emotionWechsel = 0
- self.bildAngst = [pygame.image.load(f"Bilder/Emotion/!1.png"),
- pygame.image.load(f"Bilder/Emotion/!2.png"),
- pygame.image.load(f"Bilder/Emotion/!3.png")]
- self.bildHerz = [pygame.image.load(f"Bilder/Emotion/Herz1.png"),
- pygame.image.load(f"Bilder/Emotion/Herz2.png"),
- pygame.image.load(f"Bilder/Emotion/Herz3.png")]
- self.zeitEmotion = zeitMonster
- def faehigkeit(self): #Fähigkeiten von Monster werden mit den Fähigkeiten der Klasse überschrieben!!!
- self.priSterben()
- if self.monsterDaten.leben: #wechselt Emotion je nach ob der Endboss lebt oder nicht
- self.emotion(self.bildAngst)
- else:
- self.emotion(self.bildHerz)
- def priSterben(self): # Held stirbt, wenn Prinzessin stirbt
- if not self.leben:
- sounds.soundTot()
- screen.blit(self.bildTot[self.feuerWechsel], (self.x, self.y))
- screen.blit(self.heldDaten.bildtot, (self.heldDaten.x, self.heldDaten.y))
- self.heldTot = True
- def emotion(self, emo): # Zeigt eine Sprechblase über dem Kopf
- screen.blit(emo[self.emotionWechsel], (self.x, self.y - 48))
- if time() - self.zeitEmotion >= 0.15: #Animation der Sprechblase
- if self.emotionWechsel < 2:
- self.emotionWechsel += 1
- else:
- self.emotionWechsel = 0
- self.zeitEmotion = time()
|