pygame
Verfasst: Samstag 9. April 2022, 14:48
Hallo, wenn ich dieses Programm ausführe sehe ich einen Bildschirm mit dem Spieler in der Mitte. Aber ich kann diesen Spieler nicht bewegen. Kann mir da jemand helfen? Ich mache noch nicht so lange pygame.
Main Klasse:
Player Klasse:
Main Klasse:
Code: Alles auswählen
import pygame, sys, time
from player import Player
from settings import *
class Game():
def __init__(self):
#setup
pygame.init()
self.display_surface = pygame.display.set_mode((WINDOW_WIDTH,WINDOW_HEIGHT))
pygame.display.set_caption('Space Invader')
self.clock = pygame.time.Clock()
player_sprite = Player((400, 500))
# sprite groups
self.player = pygame.sprite.GroupSingle(player_sprite)
def run(self):
last_time = time.time()
while True:
# delta time
dt = time.time() - last_time
last_time = time.time()
#event loop
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# game logic
self.display_surface.fill(GREY)
self.player.update()
self.player.draw(self.display_surface)
pygame.display.update()
self.clock.tick(FRAMERATE)
if __name__ == '__main__':
game = Game()
game.run()
Code: Alles auswählen
import pygame
from settings import *
class Player(pygame.sprite.Sprite):
def __init__(self,pos):
super().__init__()
self.image = pygame.image.load('../graphics/player.png')
self.rect = self.image.get_rect(midbottom = pos)
self.speed = 5
# keyboard input
def get_input(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
self.rect.x += self.speed
if keys[pygame.K_LEFT]:
self.rect.x -= self.speed
def update(self):
self.get_input()