Show Menu

Pygame Cheat Sheet by

pygame

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

displ­ay.s­et­_ca­pti­on(­Sum­merBYTE 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

pygam­e.d­isp­lay.up­date()
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

pygam­e.C­olor(R, G, B)
Erzeugt ein farbiges Objekt mit RGB als Argumente.

Oberfläche färben

Surfa­ce.f­il­l(c­olor)
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)
Durc­hlaufen 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.
spher­es.u­pd­ate()
Element einer Gruppe entfer­nen
spher­es.r­em­ove­(bu­llet)
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 erstel­len
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 Quadra­t...
 ­ ­ ­ ­ ­ ­  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_s­prites = 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

Koll­isionen 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 überla­ppt.
if pg.spr­ite.sp­rit­eco­lli­dea­ny(­ball, pins): pins_left -= 1
Koll­isionen zwischen zwei Gruppen
sprit­e.g­rou­pco­llide() 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.
colli­sions = 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

pygam­e.e­v­e­nt.p­ost()
Platziert ein neues Ereigniss, welches Du in der Wartes­chlange spezif­izi­erst.
pygam­e.e­v­e­nt.E­v­­ent()
Erzeugt ein neues Ereign­iso­bjekt.
pygam­e.e­v­e­nt.g­et()
Entnimmt der Wartes­chlange das nächste Ereignis.
pygam­e.e­v­e­nt.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

pygam­e.q­uit()
Beendet das Spiel

Ausgew­ählte Event Arten

pygam­e.K­EYDOWN
Eine Taste wird gedrückt
pygam­e.K­EYUP
Eine Taste wird losgel­assen
pygam­e.M­OUS­EMO­TION
Maus Bewegung festge­stellt
pygam­e.K­_BA­CKS­PACE
Rücktaste
pygam­e.K­_RE­TURN
Enter
pygam­e.K­_ES­CAPE
ESC - Taste
pygam­e.K­_SPACE
Leertaste
pygam­e.K_a
a
pygam­e.K_b
b
...
...
pygam­e.K_z
z
pygam­e.K­_KP0
Numpad 0
pygam­e.K­_KP1
Numpad 1
...
...
pygam­e.K­_KP9
Numpad 9
pygam­e.K_UP
Pfeil Taste nach oben
pygam­e.K­_DOWN
Pfeil Taste nach unten
pygam­e.K­_LEFT
Pfeil Taste nach Links
pygam­e.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.
scree­n_rect = screen.ge­t_r­ect()
Mitt­elpunkt des Fensters bestimmen
Rect-Objekte haben ein Attribut, das den Mittel­punkt speichert.
scree­n_c­enter = screen­_re­ct.c­enter
Nütz­liche 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.)
scree­n_r­ect.left, 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
Erst­ellen 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.
bulle­t_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

Download the Pygame Cheat Sheet

3 Pages
//media.cheatography.com/storage/thumb/projectsb19_pygame.750.jpg

PDF (recommended)

Alternative Downloads

Share This Cheat Sheet!

 

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