Python Tutorial
- jetzt Python programmieren lernen

eigene Spielerfigur ins Spiel programmieren

Für ein erfolgreiches Spiel benötigt man einen sympathischen Helden. In unserem Fall mit dem Thema liegt es nahe, dass wir eine Biene zur heldenhaften furchtlosen Spielerfigur machen. Unsere eigene Spielfigur soll nun ins Spiel integriert werden – dazu benötigen wir unsere Kampfbiene als Sprite-Sheet aus dem Kapitel https://www.python-lernen.de/animationen-erstellen.htm

die Spielerfigur: unsere animierte Biene als Sprite-Sheet

Die Grafik kann heruntergeladen werden unter: https://www.python-lernen.de/bilder/biene-sprite-sheet.png

Die Grafik dann im Ordner „bilder“ im Unterverzeichnis speichern, wo unsere Pythonspiel gespeichert ist.

Nun können wir unsere Spielerfigur im Code integrieren.

spieler = pygame.image.load("bilder/biene-sprite-sheet.png")

Für die Animation benötigen wir noch die einzelnen Bereiche der Bewegung aus dem Sprite-Sheet:

bereich = ['','','','','','']
bereich[0] = (0,0,100,100)
bereich[1] = (101,0,100,100)
bereich[2] = (202,0,100,100)
bereich[3] = (303,0,100,100)
bereich[4] = (404,0,100,100)
bereich[5] = (505,0,100,100) 

Alles das kommt vor der Hauptschleife.

Auch sollten wir eine Variable für den aktuellen Bewegungsframe festlegen, damit wir die Animation durchlaufen lassen können. Nenne wir die Variable hier animbereich und geben diesem als Start die 0:

animbereich = 0

Alles das kommt vor der Hauptschleife. Hier der bisher entstandene Code komplett:

# Importieren u. initialisieren der Pygame-Bibliothek
import pygame
from pygame.locals import *
pygame.init()

# Variablen/KONSTANTEN setzen
W, H = 800, 600
FPS  = 30
SCHWARZ = ( 0, 0, 0)
WEISS   = ( 255, 255, 255)

spielaktiv = True

spieler = pygame.image.load("bilder/biene-sprite-sheet.png")
bereich = ['','','','','','']
bereich[0] = (0,0,100,100)
bereich[1] = (101,0,100,100)
bereich[2] = (202,0,100,100)
bereich[3] = (303,0,100,100)
bereich[4] = (404,0,100,100)
bereich[5] = (505,0,100,100) 
animbereich = 0

# Definieren und Öffnen eines neuen Fensters
fenster = pygame.display.set_mode((W, H))
pygame.display.set_caption("Varroa Invaders")
clock = pygame.time.Clock()

# Schleife Hauptprogramm
while spielaktiv = False:
    # Überprüfen, ob Nutzer eine Aktion durchgeführt hat
    for event in pygame.event.get():
        # Beenden bei [ESC] oder [X]
        if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE):
            spielaktiv = False

    # Spiellogik

    # Spielfeld löschen
    fenster.fill(WEISS)

    # Spielfeld/figuren zeichnen

    # Fenster aktualisieren
    pygame.display.flip()
    clock.tick(FPS)

Jetzt müssen wir unsere Biene zeichnen und die Animation kontinuierlich durchlaufen lassen. Dies geschieht in der Hauptschleife unseres Spiels:

    # Spielfeld/figuren zeichnen
    animbereich  += 1

    if animbereich  > 5:
        animbereich  = 0

    fenster.blit(spieler, (100, 300), bereich[animbereich ])