main.py 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. # (c) Hochschule Anhalt, veröffentlicht unter MIT-Lizenz
  2. # Hauptprogramm
  3. # Autor: Viktor Lysow, Johannes Tümler
  4. # Letzte Änderung: 12.03.2021
  5. # Zweck: Steuerung des gesamten Spielablaufs - dieses Programm muss gestartet werden, um das Spiel zu spielen.
  6. #
  7. # Das Hauptprgramm
  8. # hier wird der Held erstellt
  9. # Hauptschleife greift auf alle Level zu
  10. from KlassePrinzessin import Prinzessin
  11. from KlasseLevelmanagement import LevelManagement
  12. import pygame
  13. import sys
  14. import sounds
  15. from screen import screen
  16. from time import time
  17. from hindernisse import feld
  18. from startBild import start
  19. from KlasseHeld import Held
  20. from Level1 import Level1
  21. from Level2 import Level2
  22. from GameOver import gameOver
  23. from GameWin import gameWin
  24. import DatenSammeln as ds # Für den Matlab Beleg
  25. zeitmax = 0 #performance test
  26. zeit_start_ges = 0
  27. spieler1 = Held(x = 582, y = 476, geschw = 4, breite = feld, hoehe = feld, level = 1, bildFigur="Held") #Figuren erstellen
  28. sounds.soundLevel()
  29. LevelManagement.Level = 0
  30. go = True
  31. clock = pygame.time.Clock()
  32. while go:
  33. LevelManagement.deltaTime = clock.tick(LevelManagement.fpsTarget)
  34. # das Spiel soll mit 30-50 fps (Bilder pro Sekunde) laufen
  35. # Falls irgendwas komisch läuft (Monster in Wänden, nichts bewegt sich, oder ähnlich)
  36. # dann mal das fpsTarget mit kleineren/größeren Werten testen (siehe Klasse LevelManagement)
  37. LevelManagement.numFrames += 1
  38. LevelManagement.timeNeeded += LevelManagement.deltaTime
  39. zeit = time()
  40. for event in pygame.event.get():
  41. if event.type == pygame.QUIT:
  42. sys.exit()
  43. elif event.type == pygame.KEYDOWN: # Wenn Escape gedrueckt wird, posten wir ein QUIT-Event in Pygames Event-Warteschlange.
  44. if event.key == pygame.K_ESCAPE:
  45. pygame.event.post(pygame.event.Event(pygame.QUIT))
  46. screen.fill((0, 0, 0))
  47. if LevelManagement.Level == 0: #Startbildschrim
  48. LevelManagement.Level = start()
  49. zeit_start_ges =time() #Zeit des Startes vom Spiel (für Matlab)
  50. elif LevelManagement.Level == 1: #Geist
  51. LevelManagement.Level = Level1(spieler1)
  52. elif LevelManagement.Level == 2: #Boss
  53. LevelManagement.Level = Level2(spieler1)
  54. elif LevelManagement.Level == 3:
  55. ds.daten_csv(10, round(time() - zeit_start_ges))
  56. LevelManagement.Level = gameOver(spieler1)
  57. spieler1.neu_Position(582, 476, 1)
  58. elif LevelManagement.Level == 4: #GameOver
  59. ds.daten_csv(10, round(time() - zeit_start_ges)) #Gesamt Spielzeit (für Matlab)
  60. LevelManagement.Level = gameWin(spieler1)
  61. spieler1.neu_Position(582, 476, 1) #Held wird resetet für neues Spiel
  62. pygame.display.update()
  63. if zeitmax < time() - zeit: #performance Test
  64. zeitmax = time() - zeit
  65. #print(zeitmax)