pygame auf der stelle laufen?
Hallo,
ich muss für die schule ein pygame spiel erstellen und kenn mich leider nicht wirklich damit aus..
ich möchte dass mein character die ganze zeit auf einer stelle steht aber dabei 'läuft', habe dafür auch dier passenden bilder, weiss aber leider nicht wie ich das im code angebe..
bis jetzt habe ich halt nur ein hintergrund und mein character und der gegner sind darauf..
würd mich echt über hilfe freuen.
hier ist mein code:
import pygame
# pygame setup
pygame.init()
screen = pygame.display.set_mode((1104, 621))
clock = pygame.time.Clock()
running = True
Hintergrund = pygame.image.load('hintergrund/back.png')
screen.blit(Hintergrund, (0, 0))
charwalk1 = pygame.image.load('characters/girl-2A.png')
screen.blit(charwalk1, (200, 300))
monster = pygame.image.load('monster/DAGRONS5.png')
screen.blit(monster, (600, 210))
pygame.display.set_caption('fighter')
charwalk1 = pygame.image.load('characters/girl-2A.png')
charwalk2 = pygame.image.load('characters/girl-2B.png')
charwalk3 = pygame.image.load('characters/girl-2C.png')
charwalk4 = pygame.image.load('characters/girl-2D.png')
charwalk5 = pygame.image.load('characters/girl-2E.png')
monster = pygame.image.load('monster/DAGRONS5.png')
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.image.load('hintergrund/back.png')
pygame.display.flip()
class Player(pygame.sprite.Sprite):
def __init__(self):
self.player_walk = (charwalk1, charwalk2, charwalk3, charwalk4, charwalk5)
1 Antwort
Du brauchst ein Sprite Sheet, welches jede einzelne Laufbewegung des Spielcharakters (Frames) abbildet. Entweder in Form von mehreren Einzelbildern oder in einem Bild.
Die Bilder müssen geladen und geordnet in eine Liste gepackt werden. Wenn du alle Frames auf nur einem Bild hast, wäre stattdessen eine Liste praktisch, die die Positionen der Frames (z.B. repräsentiert mittels Tupels) beinhaltet.
Den aktuellen Frame (bzw. den Index des Frames in der Liste) merkst du dir in einer eigenen Variable.
Bei jedem draw-Call prüfst du anschließend, ob der Spieler seinen Charakter bewegt. Wenn ja, zählst du die Indexvariable um 1 nach oben, holst dir den entsprechenden Frame aus der Liste und lässt ihn zeichnen. Solltest du am Ende der Liste ankommen, muss die Indexvariable wieder auf einen Anfangszustand gesetzt werden.