Show Menu
Cheatography

Import & Initia­lis­ierung

import pygame
pygame.init()
Dieser Code importiert das Pygame­-Modul. Mit der Init-F­unktion könnt ihr Pygame initia­lis­ieren, sodass Sie mit der Spiele­ntw­icklung loslegen könnt.

Fenster erzeugen

screen = pygame.display.set_mode((width, height))
Erstellt ein Fenster für dein Spiel, dass einer Leinwand ähnelt und eine Oberfläche zurück­gibt. Die Oberfläche ist in einer Variable screen gespei­chert. Die Argumente sind Breite (width) und Höhe (heigth) des Bildsc­hirms.

Fenste­rname festlegen

displa­y.s­et_­cap­tio­n(S­umm­erBYTE 2019!)
Diese Funktion legt das übergebene Argument als Titel des Fensters fest.

Haupts­chleife

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
Dies ist eine Schleife, die ständig nach Ereign­issen sucht. Wird das Ereignis QUIT gelesen, wird sie verlassen weiterhin wird das Einfrieren des Spiels verhin­dert.

Fenster aktual­isieren

pygame.di­spl­ay.u­pd­ate()
Aktual­isiert das Fenster und erneuert lediglich die Oberfl­äche, wenn keine Argumente angegeben werden. Wenn Du allerdings die Variablen spezif­izi­erst, werden die von Dir angege­benen Teile entspr­echend neu gezeic­hnet.

Farbe

pygame.Co­lor(R, G, B)
Erzeugt ein farbiges Objekt mit RGB als Argumente.

Oberfläche färben

Surfac­e.f­ill­(color)
Mit dieser Funktion kannst Du den ganzen Bildschirm in einer Farbe ausfüllen. Argumente sollten RGBA-Werte (Rot, Grün, Blau, Alpha) sein.

Gruppen

Eine Gruppe bilden und füllen
from pygame.sprite import Sprite, Group 

def Sphere­(Sp­rite):
...
def draw_sphere(self):
...
def update­(self):
...
spheres = Group()

new_sphere = Sphere()
sphere.add(new_bullet)
Durchl­aufen der Elemente einer Gruppe
Die sprite­s()­-Me­thode gibt alle Mitglieder einer Gruppe zurück.
for sphere in spheres.sprites():
sphere.dr­aw_­sph­ere()
update() auf einer Gruppe aufrufen
Beim Aufruf von update() für eine Gruppe wird automa­tisch update() für jedes Mitglied der Gruppe aufger­ufen.
sphere­s.u­pdate()
Element einer Gruppe entfernen
sphere­s.r­emo­ve(­bullet)
Pygame hat eine Group-­Klasse, die das Arbeiten mit einer Gruppe ähnlicher Objekte verein­facht. Eine Gruppe ist wie eine Liste mit einigen zusätz­lichen Funkti­onen, die beim Erstellen von Spielen hilfreich sind.

Sprites

Sprite erstellen
class Player­(py­gam­e.s­pri­te.S­pr­ite):  
 ­ ­ def __init­__(­self):
 ­ ­ ­ ­ ­ ­pyg­ame.sp­rit­e.S­pri­te._­_i­nit­__(­self)
 ­ ­ ­ ­  self.image = pygame.Su­rfa­ce((50, 50))

Erzeugt ein 50x50 Pixel großes Quadrat...
    
 ­ ­ ­ ­ ­ ­  self.i­mag­e.f­ill­(GREEN)
...und färbt es grün ein.

 ­ ­ ­ ­ ­ ­  self.rect = self.i­mag­e.g­et_­rect()

Berechent das, das Objekt umschl­ieß­ende, Rechteck, um die Koordi­naten eines Objekts zu verfolgen.
Sprite spawnen lassen
all_sp­rites = pygame.sp­rit­e.G­roup() 
player = Player()
all_sp­rit­es.a­dd­(pl­ayer)

Erst wird eine leere Gruppe für die Sprites erstellt, dann eine Sprite Player (also das Quadrat) erstellt und dieser dann auch in die Gruppe hinzug­efügt.
Sprite bewegen
class Player (pygam­e.s­pri­te.S­pr­ite): 
...
   def update­(self):
 ­ ­ ­ ­  self.r­ect.x += 5

Um Deinen Sprite zu bewegen, musst Du zuerst Deine Klasse Player erweitern, denn es wird nun die Funktion update­(self) hinzug­efügt, die Dein Quadart updatet, wenn sie aufgerufen wird. In diesem Fall erhöhst Du die x-Koor­dinate um 5, d.h. Dein Quadrat bewegt sich nach rechts.

Kollis­ionen erkennen

Kollis­ionen zwischen einem einzelnen Objekt und einer Gruppe
Die Funktion sprite­col­lid­eany() nimmt ein Objekt und eine Gruppe und gibt True zurück, wenn das Objekt mit einem Mitglied der Gruppe überlappt.
if pg.spr­ite.sp­rit­eco­lli­dea­ny(­ball, pins): pins_left -= 1
Kollis­ionen zwischen zwei Gruppen
sprite.gr­oup­col­lide() umfasst zwei Gruppen und zwei Booleans. Sie gibt ein Wörterbuch zurück, das Infos zu den kollid­ierten Mitgli­edern hat. Die Booleans geben an, ob entspr­echende Mitglieder einer Gruppe gelöscht werden sollen.
collisions = pg.spr­ite.gr­oup­col­lide( 
ships, aliens, True, True)
score += len(co­lli­sions) * alien_­poi­nt_­value
Du kannst erkennen, wenn ein einzelnes Objekt mit einem Mitglied einer Gruppe kollid­iert. Oder auch, wenn ein Mitglied einer Gruppe mit einem Mitglied einer anderen Gruppe kollid­iert.
 

Ereignisse

pygame.ev­­en­t.p­ost()

Platziert ein neues Ereigniss, welches Du in der Wartes­chlange spezif­izi­erst.
pygame.ev­­en­t.E­v­ent()

Erzeugt ein neues Ereign­iso­bjekt.
pygame.ev­­en­t.get()

Entnimmt der Wartes­chlange das nächste Ereignis.
pygame.ev­­en­t.c­l­ear()

Entfernt alle Ereignisse in der Wartes­chl­ange.
Alle Ereignisse befinden sicher immer in einer Wartes­chl­ange. Dabei ist auch die Reihen­folge dieser zu beachten.

Mit mehreren Ereign­issen arbeiten

for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        print("Eine Taste wurde gedrückt")
    if event.type == pygame.KEYUP:
        print("Eine Taste wurde losgelassen!")
    if event.type == pygame.K_UP:
        print("Die Pfeil-Nach-Oben Taste wurde gedrückt!")
    if event.type  == pygame.K_DOWN:
        print("Die Pfeil-Nach-Unten Taste wurde gedrückt!")
    if event.type == pygame.K_q:
        print("Der Buchstabe Q wurde gedrückt")
    if event.type == pygame.QUIT:
        pygame.quit()
Dieser Code kann beliebig verändert werden, um auch mit anderen Event Arten / Ereignis Arten zu arbeiten.

Beenden

pygame.quit()
Beendet das Spiel

Ausgew­ählte Event Arten

pygame.KE­YDOWN
Eine Taste wird gedrückt
pygame.KEYUP
Eine Taste wird losgel­assen
pygame.MO­USE­MOTION
Maus Bewegung festge­stellt
pygame.K_­BAC­KSPACE
Rücktaste
pygame.K_­RETURN
Enter
pygame.K_­ESCAPE
ESC - Taste
pygame.K_­SPACE
Leertaste
pygame.K_a
a
pygame.K_b
b
...
...
pygame.K_z
z
pygame.K_KP0
Numpad 0
pygame.K_KP1
Numpad 1
...
...
pygame.K_KP9
Numpad 9
pygame.K_UP
Pfeil Taste nach oben
pygame.K_DOWN
Pfeil Taste nach unten
pygame.K_LEFT
Pfeil Taste nach Links
pygame.K_­RIGHT
Pfeil Taste nach Rechts

Rechtecke

Ein rect Objekt
Wir haben bereits ein Fenste­rob­jekt. Wir können leicht auf das Rect Objekt zugreifen, welches wir dem Fenste­robjekt zuordnen.
screen­_rect = screen.ge­t_r­ect()
Mittel­punkt des Fensters bestimmen
Rect-Objekte haben ein Attribut, das den Mittel­punkt speichert.
screen­_center = screen­_re­ct.c­enter
Nützliche rect Attribute
Wenn Ihr ein rect Objekt haben, gibt es eine Reihe von nützlichen Attrib­uten, die beim Positi­onieren von Objekten und dem Ermitteln relativer Positionen von Objekten hilfreich sind. (Weitere Attribute findet Ihr in der Pygame Dokume­nta­tion.)
screen­_re­ct.l­eft, screen_rect.right
screen_rect.top, screen_rect.bottom
screen_rect.centerx, screen_rect.centery
screen_rect.width, screen­_re­ct.h­eight

screen_rect.center
screen_rect.size
Erstellen eines rect Objektes
Ihr könnt ein Rechteck Objekt erstellen, welches eine Kugel in einem Spiel darstellen soll. Die Rect() Klasse nimmt die Koordi­naten der oberen linken Ecke an. Die Werte für Breite und Höhe des Rechtecks gebt ihr als Argumente mit. Die Funktion draw.rect () benötigt zum eines das Fenster Objekt, zum zweiten die Farbe und zu guter Letzt das Rechteck Objekt.
bullet­_rect = pygame.Re­ct(100, 100, 3, 15)
color = (100, 100, 100)
pygame.draw.rect(screen, color, bullet­_rect)
Viele Objekte in einem Spiel können als einfache Rechtecke behandelt werden. Das verein­facht den Code, ohne das Spiel merklich zu beeinf­lussen. Pygame hat eine „Rect“­-Ob­jekt, das das Arbeiten mit Spielo­bjekten erleic­htert
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Basic Pygame Cheat Sheet