Ich bin ziemlich neu zu Pygame.Pygame Sprite, Duplikat erzeugend, anstatt sich zu bewegen
Ich versuche Pong in Python mit Pygame neu zu erstellen, aber ich habe einen Roadblock getroffen.
Hier ist mein Code:
import pygame
pygame.init()
UP = "up"
DOWN = "down"
white = (255,255,255)
black = (0,0,0)
pygame.mouse.set_visible(True)
resolution = (800,600)
window = pygame.display.set_mode(resolution)
pygame.display.set_caption("Pong!")
clock = pygame.time.Clock()
sprites_list = pygame.sprite.Group()
running = True
class Paddle(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((25,100))
self.image.fill(white)
pygame.draw.rect(self.image,white, (0,0,25,100))
self.rect = self.image.get_rect()
def move(self,direction,pixels):
if direction == DOWN:
self.rect.y -= pixels
if direction == UP:
self.rect.y += pixels
player1 = Paddle()
player1.rect.x = 0
player1.rect.y = 200
sprites_list.add(player1)
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_DOWN]:
player1.move(DOWN, 5)
if keys[pygame.K_UP]:
player1.move(UP, 5)
sprites_list.update()
sprites_list.draw(window)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Ich versuche player1, ein Paddel-Objekt zu machen, nach oben oder unten, je nach dem Taste gedrückt wird. Wenn ich diesen Code ausführe, wird player1 ausgestreckt, nachdem die Aufwärts- oder Abwärtspfeile gedrückt wurden. 5 Pixel werden auf player1.rect hinzugefügt.
Was mache ich falsch und warum wird sprites_list.update() player1 nicht in seine neue Position bringen?
Sie Bildschirm löschen, bevor Sie neues Element in Schleife ziehen - dh. fülle mit schwarzer Farbe 'window.fill ((0,0,0))' – furas