hindernisse.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # (c) Hochschule Anhalt, veröffentlicht unter MIT-Lizenz
  2. # Hindernisse
  3. # Autor: Viktor Lysow, Johannes Tümler
  4. # Letzte Änderung: 30.03.2022
  5. # Zweck: Definition der vorhandenen Hinternisse
  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. import pygame
  16. from screen import screen
  17. feld = 48 # pixel
  18. # es gibt 13 x 17 Felder (Höhe x Breite)
  19. # , Farbe , (links, oben, breite, höhe), ausgefüllt
  20. grenzeLevel1 = [pygame.draw.rect(screen, (0,0,0), (0,0,feld,feld*12),0), # linke Wand
  21. pygame.draw.rect(screen, (0,0,0), (feld*16,0,feld,feld*13),0), # rechte Wand
  22. pygame.draw.rect(screen, (0,0,0), (0,0,feld*17,feld),0), # obere Wand
  23. pygame.draw.rect(screen, (0,0,0), (0,feld*12,feld*17,feld),0), # untere Wand
  24. # die nächsten Zeilen definieren die diversen Hindernisse des Levels
  25. pygame.draw.rect(screen, (0,0,0), (feld*5, feld, feld*2, feld*4),0),
  26. pygame.draw.rect(screen, (0,0,0), (feld*3, feld*2,feld*2, feld),0),
  27. pygame.draw.rect(screen, (0,0,0), (feld*7, feld*6,feld*2, feld*6),0),
  28. pygame.draw.rect(screen, (0,0,0), (feld*9, feld*6,feld*4, feld),0),
  29. pygame.draw.rect(screen, (0,0,0), (feld*16,0, feld, 13*feld),0),
  30. pygame.draw.rect(screen, (0,0,0), (0, feld*12, feld*17, feld),0)]
  31. # Kollisionen in Level2
  32. grenzeLevel2 = [pygame.draw.rect(screen, (0,0,0), (0,0,feld,feld*12),0), # linke Wand
  33. pygame.draw.rect(screen, (0,0,0), (feld*16,0,feld,feld*13),0), # rechte Wand
  34. pygame.draw.rect(screen, (0,0,0), (0,0,feld*17,feld),0), # obere Wand
  35. pygame.draw.rect(screen, (0,0,0), (0,feld*12,feld*17,feld),0), # untere Wand
  36. # die nächsten Zeilen definieren die diversen Hindernisse des Levels
  37. pygame.draw.rect(screen, (0,0,0), (feld,feld,feld*2,feld*2),0),
  38. pygame.draw.rect(screen, (0,0,0), (feld*8,feld*3,feld*2,feld*2),0),
  39. pygame.draw.rect(screen, (0,0,0), (feld*6,feld*4,feld*3,feld*2),0),
  40. pygame.draw.rect(screen, (0,0,0), (feld*6,feld*4,feld*3,feld*2),0),
  41. pygame.draw.rect(screen, (0,0,0), (feld*5,feld*6,feld*2,feld*4),0),
  42. pygame.draw.rect(screen, (0,0,0), (feld*3,feld*7,feld*2,feld*2),0),
  43. pygame.draw.rect(screen, (0,0,0), (feld*10,feld*7,feld*2,feld*3),0),
  44. pygame.draw.rect(screen, (0,0,0), (feld*9,feld*8,feld,feld),0)]
  45. grenzeLevel= [] #liste mit allen Hindernissen
  46. grenzeLevel.append(grenzeLevel1)
  47. grenzeLevel.append(grenzeLevel2)
  48. tor1 = pygame.Rect(3*feld + feld/2, feld, 5, 5) #Ziel in Level 1
  49. tor2 = pygame.Rect(3*feld + feld/2, feld, 5, 5) #Ziel in Level 2
  50. # Testfunktion um die Ränder/Felder einzufärben, an denen eine Kollision ausgeführt wird.
  51. # Falls gewünscht, testweise aus Level2.py aufrufen.
  52. def drawLevel2():
  53. # , Farbe , (links, oben, breite, höhe), ausgefüllt
  54. pygame.draw.rect(screen, (255,0,0), (0,0,feld,feld*12),0) # linke Wand
  55. pygame.draw.rect(screen, (0,255,0), (feld*16,0,feld,feld*13),0) # rechte Wand
  56. pygame.draw.rect(screen, (0,0,255), (0,0,feld*17,feld),0) # obere Wand
  57. pygame.draw.rect(screen, (255,255,0), (0,feld*12,feld*17,feld),0) # untere Wand
  58. pygame.draw.rect(screen, (0,0,0), (feld,feld,feld*2,feld*2),0)
  59. pygame.draw.rect(screen, (0,0,0), (feld*8,feld*3,feld*2,feld*2),0)
  60. pygame.draw.rect(screen, (0,0,0), (feld*6,feld*4,feld*3,feld*2),0)
  61. pygame.draw.rect(screen, (0,0,0), (feld*6,feld*4,feld*3,feld*2),0)
  62. pygame.draw.rect(screen, (0,0,0), (feld*5,feld*6,feld*2,feld*4),0)
  63. pygame.draw.rect(screen, (0,0,0), (feld*3,feld*7,feld*2,feld*2),0)
  64. pygame.draw.rect(screen, (0,0,0), (feld*10,feld*7,feld*2,feld*3),0)
  65. pygame.draw.rect(screen, (0,0,0), (feld*9,feld*8,feld,feld),0)