Menu
CoddyTech

Mit einem Rect platzieren

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

Eine obere linke Ecke von Hand zu berechnen bedeutet, für jedes platzierte Bild Summen zu bilden. Jedes Surface kann ein Rect in seiner eigenen Größe liefern:

ship_rect = ship.get_rect(center=(320, 400))

get_rect() allein ist Rect(0, 0, 64, 64). Ein Schlüsselwort positioniert es: center, midbottom, topleft oder jeder andere Punkt, den ein Rect hat. Hier kommt die Mitte des Schiffs auf (320, 400), und pygame berechnet die Ecke: (288, 368).

Blitte das Bild am Rect, dann landet es an der oberen linken Ecke des Rect:

screen.blit(ship, ship_rect)

Jetzt ist das Rect die Position des Schiffs. Ändere ship_rect.x oder ship_rect.centery, und im nächsten Frame wird das Schiff dort gezeichnet. So bewegt sich jedes Bild in einem Spiel: ein Rect beibehalten, das Rect ändern, am Rect blitten. Es ist außerdem das Rect, mit dem du Kollisionen prüfst, wie in Abschnitt 2.

challenge icon

Aufgabe

Einfach
  1. Erstelle nach dem Laden von ship ship_rect = ship.get_rect(center=(320, 400)).
  2. Blitte ship an ship_rect statt an einem festen Punkt.

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()

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, (288, 208))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Sprites und Bilder

Übe selbstständig: Pygame-Playground