Menu
CoddyTech

Das Bild bewegen

Teil des Abschnitts Sprites und Bilder der Pygame-Journey von Coddy. Lektion 3 von 36.

Das Schiff befindet sich am unteren Rand des Fensters. Um es nach links und rechts zu bewegen, verschiebst du sein Rect mit den Pfeiltasten, so wie du das Quadrat in Abschnitt 2 bewegt hast:

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    ship_rect.x -= 6
if keys[pygame.K_RIGHT]:
    ship_rect.x += 6

Die blit-Zeile bleibt unverändert: Sie zeichnet das Schiff an der aktuellen Position des Rect.

Ein Rect kann sich innerhalb eines anderen Rect halten. screen.get_rect() ist das Rect des Fensters (0, 0, 640, 480), und

ship_rect.clamp_ip(screen.get_rect())

verschiebt ship_rect wieder hinein, wenn es herausragt. _ip bedeutet „in place“: Es ändert ship_rect selbst. ship_rect.clamp(...) ohne dieses Suffix lässt ship_rect unverändert und gibt stattdessen ein neues Rect zurück.

challenge icon

Aufgabe

Einfach
  1. In der Schleife bewegt das Gedrückthalten von Links vor dem Zeichnen ship_rect um 6 Pixel nach links und das Gedrückthalten von Rechts um 6 Pixel nach rechts.
  2. Halte es anschließend mit ship_rect.clamp_ip(screen.get_rect()) im Fenster.

Probier es selbst

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
clock = pygame.time.Clock()

ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_rect = ship.get_rect(center=(320, 400))

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((20, 22, 40))
    screen.blit(ship, ship_rect)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Alle Lektionen in Sprites und Bilder

Übe selbstständig: Pygame-Playground