Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss2021:project2:dokumentation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ss2021:project2:dokumentation [2021/10/13 16:32]
jana_wing [5.Termin (24.06.21)]
ss2021:project2:dokumentation [2021/10/13 16:39] (aktuell)
jana_wing [7.Termin (07.10.21)]
Zeile 63: Zeile 63:
  
 <code python> <code python>
- 
  
   import os #Modul mit Funktionen fürs Betriebssystem   import os #Modul mit Funktionen fürs Betriebssystem
Zeile 99: Zeile 98:
                   if dy < 0: #Bewegung nach oben, untere Seite der Wand                   if dy < 0: #Bewegung nach oben, untere Seite der Wand
                       self.rect.top = wall.rect.bottom                       self.rect.top = wall.rect.bottom
 +                      ​
 +</​code>​
 +
 +<code python> ​                     ​
   ​   ​
-  ​#Klasse für Wände +#Klasse für Wände 
-  class Wall(object):​ +class Wall(object):​ 
-      def init(self, pos): +    def __init__(self, pos): 
-          walls.append(self) +        walls.append(self) 
-          self.rect = pygame.Rect(pos[0],​ pos[1], 16, 16) +        self.rect = pygame.Rect(pos[0],​ pos[1], 16, 16) 
-          ​self.screen = pygame.display.set_mode((320,​240)) + 
-   +#Spiel wird initialisiert 
-   +os.environ["​SDL_VIDEO_CENTERED"​] = "​1"​ #Fenster wird in der Mitte des Bildschirms platziert 
-      def draw_text(self,​ words, screen, pos, size, colour, font_name, centered = False): +pygame.init() 
-          screen = pygame.display.set_mode((320,​240)) + 
-          font = pygame.font.SysFont(font_name,​ size) +#​Display-Einstellungen 
-          text = font.render(words,​ False, colour) +pygame.display.set_caption("​Finde den Ausgang des Labyrinths!"​) 
-          text_size = text.get_size() +screen = pygame.display.set_mode((320,​240)) 
-          if centered: + 
-              pos[0] = pos[0]-text_size[0]//​2 +clock = pygame.time.Clock() 
-              pos[1] = pos[1]-text_size[1]//​2 +walls = [] #auf die Liste wird in der Klasse zugegriffen 
-          screen.blit(text,​ pos) +spieler = Spieler() 
-   + 
-   +#​Levellayout als string 
-      def start_draw(self):​ +level = [ 
-          screen = pygame.display.set_mode((320,​240)) +    "​WWWWWWWWWWWWWWWWWWWW",​ 
-          self.screen.fill((0,​0,​0)) +    "​W ​                 W", 
-          self.draw_text('​You win', self.screen,​ [ +    "​W ​  WWW WWW WWWWWWWW",​ 
-                         160, 120-50], 16, (170, 132, 58), 'arial black',​ centered=True) +    "​W ​  W W W W W      W", 
-          for e in pygame.event.get():​ #alles was der Nutzer macht +    "WW WW W W W   WWWW W", 
-              if e.type == pygame.QUIT:​ +    "​W ​ W  W     W W  W W", 
-                  pygame.quit() +    "W WW WWWWWWWW W WW W", 
-          pygame.display.update() +    "W W           W W  W", 
-   +    "W WWWWWWWWWWWWW W WW", 
-   +    "​W ​    W W       ​W ​ W", 
-   +    "W WWW W   W WW WWW W", 
-   +    "​W ​  WWWWW WWW      W", 
-  ​#Spiel wird initialisiert +    "W WWW   ​W ​  W WWWWWW",​ 
-  os.environ["​SDL_VIDEO_CENTERED"​] = "​1"​ #Fenster wird in der Mitte des Bildschirms platziert +    "​W ​    W W W W      W", 
-  pygame.init() +    "WWWWWWWWWWWEWWWWWWWW", 
-   +
-  #​Display-Einstellungen + 
-  pygame.display.set_caption("​Finde den Ausgang des Labyrinths!"​) +#W als Wand definieren und E als Ausgang 
-  screen = pygame.display.set_mode((320,​240)) +x = y = 0 
-   +for row in level: 
-  clock = pygame.time.Clock() +    for col in row: #einzelnen Einträge in der Reihe werden nach und nach überprüft 
-  walls = [] #auf die Liste wird in der Klasse zugegriffen +        if col == "​W":​ 
-  spieler = Spieler() +            Wall((x, y)) #es wird auf Wall Klasse zugegriffen 
-   +        if col == "​E":​ 
-  #​Levellayout als string +            end_rect = pygame.Rect(x,​ y, 16, 16) 
-  level = [ +        x += 16 #immer 16, da ein Buchstabe 16 Pixel entspricht 
-      "​WWWWWWWWWWWWWWWWWWWW",​ +    y += 16 
-      "​W ​                 W", +    x = 0 
-      "​W ​  WWW WWW WWWWWWWW",​ + 
-      "​W ​  W W W W W      W", +running = True 
-      "WW WW W W W   WWWW W", +while running: 
-      "​W ​ W  W     W W  W W", + 
-      "W WW WWWWWWWW W WW W", +    clock.tick(60) #Zeit wird festgelegt 
-      "W W           W W  W", + 
-      "W WWWWWWWWWWWWW W WW", +    for e in pygame.event.get():​ #alles was der Nutzer macht 
-      "​W ​    W W       ​W ​ W", +        if e.type == pygame.QUIT:​ 
-      "W WWW W   W WW WWW W", +            running = False 
-      "​W ​  WWWWW WWW      W", +        if e.type == pygame.KEYDOWN and e.key == pygame.K_ESCAPE:​ #spiel beenden mit esc 
-      "W WWW   ​W ​  W WWWWWW",​ +            running = False 
-      "​W ​    W W W W      W", + 
-      "WWWWWWWWWEWWWWWWWWWW", +    #Spieler bewegen 
-  +    key = pygame.key.get_pressed() 
-   +    if key[pygame.K_LEFT]:​ 
-  #W als Wand definieren und E als Ausgang +        spieler.move(-2,​ 0) 
-  x = y = 0 +    if key[pygame.K_RIGHT]:​ 
-  for row in level: +        spieler.move(2,​ 0) 
-      for col in row: #einzelnen Einträge in der Reihe werden nach und nach überprüft +    if key[pygame.K_UP]:​ 
-          if col == "​W":​ +        spieler.move(0,​ -2) 
-              Wall((x, y)) #es wird auf Wall Klasse zugegriffen +    if key[pygame.K_DOWN]:​ 
-          if col == "​E":​ +        spieler.move(0,​ 2) 
-              end_rect = pygame.Rect(x,​ y, 16, 16) + 
-          x += 16 #immer 16, da ein Buchstabe 16 Pixel entspricht +    #​Spiel beenden durch berühren des roten Rechtecks 
-      y += 16 +    if spieler.rect.colliderect(end_rect):​ 
-      x = 0 +        pygame.quit() 
-   +        sys.exit() 
-  ​black=(0,​0,​0) + 
-  end_it=False +    ​#Farben und so 
-  while (end_it==False):​ +    screen.fill((0,​ 0, 0)) 
-      screen.fill(black) +    for wall in walls: 
-      myfont=pygame.font.SysFont("​Britannic Bold", 40) +        pygame.draw.rect(screen,​ (255, 255, 255),​wall.rect) 
-      nlabel=myfont.render("​2D-Labyrinth-SpAß",​ 1, (255, 0, 0)) +    pygame.draw.rect(screen,​ (0, 0, 0), end_rect) 
-      alabel=myfont.render("​click to start :)", 1, (255,​255,​0)) +    pygame.draw.rect(screen,​ (255, 200, 0), spieler.rect) 
-      for event in pygame.event.get():​ +    pygame.display.flip() #nur Teil des screens wird geupdatet 
-          if event.type==pygame.MOUSEBUTTONDOWN:​ +    clock.tick(360) 
-              end_it=True + 
-      screen.blit(nlabel,​(25,​100)) +pygame.quit() 
-      screen.blit(alabel,​(50,​130)) + 
-      pygame.display.flip() +</​code>​
-   +
-  ​running = True +
-  state = True +
-   +
-  ​while running: +
-      while state: +
-          clock.tick(60) #Zeit wird festgelegt +
-   +
-          for e in pygame.event.get():​ #alles was der Nutzer macht +
-              if e.type == pygame.QUIT:​ +
-                  running = False +
-              if e.type == pygame.KEYDOWN and e.key == pygame.K_ESCAPE:​ #spiel beenden mit esc +
-                  running = False +
-   +
-          #Spieler bewegen +
-          key = pygame.key.get_pressed() +
-          if key[pygame.K_LEFT]:​ +
-              spieler.move(-2,​ 0) +
-          if key[pygame.K_RIGHT]:​ +
-              spieler.move(2,​ 0) +
-          if key[pygame.K_UP]:​ +
-              spieler.move(0,​ -2) +
-          if key[pygame.K_DOWN]:​ +
-              spieler.move(0,​ 2) +
-   +
-          #Farben und so +
-          screen.fill((0,​ 0, 0)) +
-          for wall in walls: +
-              pygame.draw.rect(screen,​ (255, 255, 255),​wall.rect) +
-          pygame.draw.rect(screen,​ (0, 0, 0), end_rect) +
-          pygame.draw.rect(screen,​ (255, 200, 0), spieler.rect) +
-          pygame.display.flip() #nur Teil des screens wird geupdatet +
-          clock.tick(360) +
-   +
-   +
-          #Spiel beenden durch berühren des roten Rechtecks +
-          if spieler.rect.colliderect(end_rect):​ +
-              state = False +
-   +
-      while not state: +
-          wall.start_draw() +
-          running = False +
-          for e in pygame.event.get(): #alles was der Nutzer macht +
-              if e.type == pygame.QUIT:​ +
-                  ​running = False +
-   +
-   +
-   +
-  pygame.quit()+
 ====6. Termin (01.07.21)==== ====6. Termin (01.07.21)====
   * Start und Endbildschirm für pygame und Besprechung mit Gruppe 1   * Start und Endbildschirm für pygame und Besprechung mit Gruppe 1
  
- +<code python>
   import os #Modul mit Funktionen fürs Betriebssystem   import os #Modul mit Funktionen fürs Betriebssystem
   import sys #liefert Funktionen und Variablen   import sys #liefert Funktionen und Variablen
Zeile 414: Zeile 367:
   ​   ​
   pygame.quit()   pygame.quit()
 +</​code>​
  
 ====7.Termin (07.10.21)==== ====7.Termin (07.10.21)====
   * "​Randomizen"​ des Labyrinths durch Material von Gruppe 1   * "​Randomizen"​ des Labyrinths durch Material von Gruppe 1
 +  * Präsentation machen und üben
  
  
ss2021/project2/dokumentation.1634135541.txt.gz · Zuletzt geändert: 2021/10/13 16:32 von jana_wing