Pygame-Tutorial

Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
[unmarkierte Version][gesichtete Version]
K (Pygame initialisieren)
K (Die Nachrichtenschleife)
Zeile 110: Zeile 110:
 
Damit ist Pygame grundlegend initialisiert. Jetzt müssen wir nur noch dafür sorgen, dass das Fenster auch länger als ein Frame angezeigt wird. Dafür verwenden wir eine Nachrichtenschleife. Um Probleme mit der Geschwindigkeit der verschiedenen PCs zu vermeiden, legen wir fest, dass wir maximal 30 Frames pro Sekunde berechnen wollen:
 
Damit ist Pygame grundlegend initialisiert. Jetzt müssen wir nur noch dafür sorgen, dass das Fenster auch länger als ein Frame angezeigt wird. Dafür verwenden wir eine Nachrichtenschleife. Um Probleme mit der Geschwindigkeit der verschiedenen PCs zu vermeiden, legen wir fest, dass wir maximal 30 Frames pro Sekunde berechnen wollen:
  
<sourcecode lang=python line start=19>
+
<sourcecode lang=python line start=22>
 
     clock = pygame.time.Clock()
 
     clock = pygame.time.Clock()
 
+
   
     # Starting event loop...
+
     # Die Schleife, und damit unser Spiel, läuft solange running == True.
 
     running = 1
 
     running = 1
 
     while running:
 
     while running:
         # Limit framerate
+
         # Framerate auf 30 Frames pro Sekunde beschränken.
 +
        # Pygame wartet, falls das Programm schneller läuft.
 
         clock.tick(30)
 
         clock.tick(30)
  
         # Clear screen...
+
         # screen-Surface mit Schwarz (RGB = 0, 0, 0) füllen.
 
         screen.fill((0, 0, 0))
 
         screen.fill((0, 0, 0))
 
</sourcecode>
 
</sourcecode>
Zeile 125: Zeile 126:
 
Zuerst erstellen wir ein <tt>time.Cock</tt>-Objekt, welches sich um die Framerate-Begrenzung kümmern soll. Um die Schleife bequem wieder verlassen zu können, verwenden wir die <tt>running</tt>-Variable. Solange sie 1 ist, bleiben wir in der Schleife. In der Schleife lassen wir das <tt>time.Clock</tt>-Objekt erstmal berechnen, wie lange wir warten müssen, um maximal 30 Frames pro Sekunde zu erhalten. Danach überschreiben wir den gesamten Bildschirm mit der Farbe Schwarz.
 
Zuerst erstellen wir ein <tt>time.Cock</tt>-Objekt, welches sich um die Framerate-Begrenzung kümmern soll. Um die Schleife bequem wieder verlassen zu können, verwenden wir die <tt>running</tt>-Variable. Solange sie 1 ist, bleiben wir in der Schleife. In der Schleife lassen wir das <tt>time.Clock</tt>-Objekt erstmal berechnen, wie lange wir warten müssen, um maximal 30 Frames pro Sekunde zu erhalten. Danach überschreiben wir den gesamten Bildschirm mit der Farbe Schwarz.
  
<sourcecode lang=python line start=31>
+
<sourcecode lang=python line start=35>
 
         for event in pygame.event.get():
 
         for event in pygame.event.get():
             # Close application?
+
             # Spiel beenden, wenn wir ein QUIT-Event finden.
 
             if event.type == pygame.QUIT:
 
             if event.type == pygame.QUIT:
                 running = 0
+
                 running = False
 
</sourcecode>
 
</sourcecode>
  
Zeile 135: Zeile 136:
 
Als Nächstes interessiert uns, welche Tasten der Benutzer gedrückt hat. Diese Events werden durch den Typ <tt>KEYDOWN</tt> repräsentiert.
 
Als Nächstes interessiert uns, welche Tasten der Benutzer gedrückt hat. Diese Events werden durch den Typ <tt>KEYDOWN</tt> repräsentiert.
  
<sourcecode lang=python line start=37>
+
<sourcecode lang=python line start=41>
 
             if event.type == pygame.KEYDOWN:
 
             if event.type == pygame.KEYDOWN:
                 # Escape: Quit
+
                 # Wenn Escape gedrückt wird, posten wir ein QUIT-Event in Pygames Event-Warteschlange.
 
                 if event.key == pygame.K_ESCAPE:
 
                 if event.key == pygame.K_ESCAPE:
 
                     pygame.event.post(pygame.event.Event(pygame.QUIT))
 
                     pygame.event.post(pygame.event.Event(pygame.QUIT))
Zeile 145: Zeile 146:
 
Nachdem wir alle Events durchgesehen haben, können wir endlich den Bildschirminhalt anzeigen:
 
Nachdem wir alle Events durchgesehen haben, können wir endlich den Bildschirminhalt anzeigen:
  
<sourcecode lang=python line start=43>
+
<sourcecode lang=python line start=47>
 
         pygame.display.flip()
 
         pygame.display.flip()
 
</sourcecode>
 
</sourcecode>
Zeile 152: Zeile 153:
 
Damit sind wir auch fast schon am Ende des Beispiels. Das gerade Besprochene haben wir in eine Funktion <tt>main</tt> gesteckt, die wir jetzt einfach aufrufen, falls diese Datei nicht als Modul importiert wird:
 
Damit sind wir auch fast schon am Ende des Beispiels. Das gerade Besprochene haben wir in eine Funktion <tt>main</tt> gesteckt, die wir jetzt einfach aufrufen, falls diese Datei nicht als Modul importiert wird:
  
<sourcecode lang=python line start=46>
+
<sourcecode lang=python line start=51>
 
if __name__ == '__main__':
 
if __name__ == '__main__':
 +
    # Unsere Main-Funktion aufrufen.
 
     main()
 
     main()
 
</sourcecode>
 
</sourcecode>

Version vom 28. Oktober 2011, 15:59 Uhr

Klicke hier, um diese Version anzusehen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge