Level1.py 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. # (c) Hochschule Anhalt, veröffentlicht unter MIT-Lizenz
  2. # Level1
  3. # Autor: Viktor Lysow, Johannes Tümler
  4. # Letzte Änderung: 22.04.2022
  5. # Zweck: Organisation und Steuerung des ersten Levels
  6. # Der Nachfolgende Codeblock "BLOCK1" sorgt dafür, dass man aus jeder Datei heraus das Hauptprogramm starten kann.
  7. # Dadurch kann man in jeder Datei auf "play" drücken und es wird automatisch main.py gestartet.
  8. if __name__=="__main__":
  9. import subprocess
  10. # Auf Linux oder Mac aktivieren Sie die folgende Zeile und deaktivieren Sie die Zeile danach:
  11. #subprocess.call("python3 main.py", shell=True) # die richtige Main-Datei aufrufen (unser eigentliches Hauptprogramm)
  12. subprocess.call("main.py", shell=True) # die richtige Main-Datei aufrufen (unser eigentliches Hauptprogramm)
  13. exit(0) # nun das Programm hier beenden .. wir wollen ja nur das Hauptprogramm starten und nicht *diese* Datei.
  14. # Ende "BLOCK1"
  15. from KlasseLevelmanagement import LevelManagement
  16. import pygame
  17. import sounds
  18. import DatenSammeln as ds # Für den Matlab Beleg
  19. from screen import screen
  20. from hindernisse import feld
  21. from time import time
  22. from KlasseGeist import Geist
  23. zeitStart = True
  24. zeit = 0
  25. LevelManagement.Level = 1
  26. hintergrundLevel1 = pygame.image.load("Bilder/Karte/Level1.png")
  27. tor = pygame.Rect(3*feld,0,48,48) #Ziel in Level 1
  28. monster = Geist(x = 100, y = 200, geschw= 3, breite = feld, hoehe = feld, level = LevelManagement.Level,bildFigur= "Geist",zeitMonster= time())
  29. # display text
  30. pygame.font.init() # you have to call this at the start, if you want to use this module.
  31. myfont = pygame.font.SysFont('Comic Sans MS', 30)
  32. def Level1(spieler):
  33. global zeitStart, zeit
  34. screen.blit(hintergrundLevel1, (0, 0))
  35. # Tor anzeigen
  36. #pygame.draw.rect(screen, (255,0,0), (3*feld,0,48,48),0)
  37. if LevelManagement.numFrames >= LevelManagement.fpsTarget:
  38. LevelManagement.fpsCurrent = (LevelManagement.timeNeeded / LevelManagement.numFrames)
  39. LevelManagement.numFrames = 0
  40. LevelManagement.timeNeeded = 0
  41. textsurface = myfont.render("%i fps" % (1000/LevelManagement.fpsCurrent), False, (255, 255, 0))
  42. screen.blit(textsurface,(10,0))
  43. if zeitStart: #Zeit wird ab den ersten aufruf gemäßen (für Matlab)
  44. zeitStart = False
  45. LevelManagement.Level = 1
  46. zeit = time()
  47. if monster.mlaufen(spieler): #mit mlaufen läuft der Geist und es wird überprüft, ob der Held getötet wurde
  48. pygame.display.update()
  49. pygame.time.wait(1000)
  50. gameOver = 3
  51. monster.reset() #Es wird Alles für den Geist zurück gesetzt
  52. ds.daten_csv(8,round(time() - zeit)) #Zeit für Level1 (für Matlab)
  53. ds.daten_csv(11,LevelManagement.Level)
  54. zeitStart = True
  55. return gameOver
  56. if spieler.obenKollision.colliderect(tor): #Held muss mit dem Kopf den Eingang berühren
  57. LevelManagement.Level += 1
  58. spieler.neu_Position(582, 476, LevelManagement.Level) #Neue Position für das nächste Level
  59. sounds.soundTor()
  60. pygame.time.wait(500)
  61. monster.reset() #Es wird Alles für den Geist zurück gesetzt
  62. ds.daten_csv(8, round(time() - zeit)) #Zeit für Level1 (für Matlab)
  63. zeitStart = True
  64. return LevelManagement.Level
  65. else: #Das Level läuft weiter
  66. spieler.steuerung()
  67. return LevelManagement.Level