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 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 unser 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. Nennen 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 ])