ich kreiere gerade mein erstes Spiel mit PyGame. Ich habe einen Charakter, ein Objekt einer Sprite Klasse, den ich mit A und D nach links und nach rechts bewegen kann, mit Leertaste kann er springen. Sobald ich den Charakter bewege, werden, denke mal 60, da 60 Frames, Bilder von meinem Charakter in der Sekunde erstellt, an der Position an der er war.
Wer kann mir weiterhelfen? Was mache ich falsch ^^
Bild dazu gäbe es hier:
https://drive.google.com/drive/folders/ ... sp=sharing
Code: Alles auswählen
import pygame
from sys import exit
#Allgemeines
pygame.init()
screen = pygame.display.set_mode((1000, 550))
pygame.display.set_caption("Name of the Game")
clock = pygame.time.Clock()
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
bg = pygame.image.load('gpx/bg.png').convert_alpha()
background_surface = pygame.transform.rotozoom(bg, 0, 9.3)
background_rect = background_surface.get_rect(center=(500, 300))
screen.blit(background_surface, background_rect)
player_stand = pygame.image.load('gpx/player/player_stand.png').convert_alpha()
self.image = pygame.transform.rotozoom(player_stand, 0, 4)
self.rect = self.image.get_rect(midbottom=(80, 450))
self.movement = 0
self.anziehungskraft = 0
[img][/img]
def gravity(self):
self.anziehungskraft += 0.8
self.rect.y += self.anziehungskraft
if self.rect.bottom >= 450:
self.rect.bottom = 450
def move(self):
keys = pygame.key.get_pressed()
#nach links laufen
if keys[pygame.K_a]:
self.movement = -4
self.rect.x += self.movement
#nach rechts laufen
if keys[pygame.K_d]:
self.movement = 4
self.rect.x += self.movement
if self.rect.bottom == 450:
if keys[pygame.K_SPACE]:
self.anziehungskraft = -12
#So das er sobald ich den anderen Knopf (a oder d) drücke er direkt in die Richtung läuft
if event.type == pygame.KEYUP:
if event.key == pygame.K_a:
self.movement = 0
if event.key == pygame.K_d:
self.movement = 0
def update(self):
self.move()
self.gravity()
#Gruppe erstellen und Player Objekt hinzufügen
player = pygame.sprite.GroupSingle()
player.add(Player())
#Game Loop
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
player.draw(screen)
player.update()
#Game Fenster aktualisieren
pygame.display.update()
clock.tick(60)