Menu
CoddyTech

Umieść go za pomocą Rect

Część sekcji Sprite’y i obrazy ścieżki Pygame w Coddy. Lekcja 2 z 36.

Ręczne obliczanie lewego górnego rogu oznacza sumowanie wartości dla każdego umieszczanego obrazu. Każda powierzchnia może udostępnić własny obiekt Rect o swoich wymiarach:

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

Samo get_rect() zwraca Rect(0, 0, 64, 64). Słowo kluczowe określa położenie: center, midbottom, topleft lub dowolny inny punkt obiektu Rect. Tutaj środek statku trafia do punktu (320, 400), a pygame oblicza położenie rogu: (288, 368).

Wywołaj blit obrazu z obiektem Rect — obraz zostanie umieszczony w jego lewym górnym rogu:

screen.blit(ship, ship_rect)

Teraz obiekt Rect określa pozycję statku. Zmień ship_rect.x lub ship_rect.centery, a w następnej klatce statek zostanie narysowany w nowym miejscu. Tak poruszają się wszystkie obrazy w grze: przechowuj obiekt Rect, zmieniaj jego położenie i wywołuj blit z tym obiektem. To również ten obiekt Rect służy do sprawdzania kolizji, jak w sekcji 2.

challenge icon

Wyzwanie

Łatwy
  1. Po załadowaniu ship utwórz ship_rect = ship.get_rect(center=(320, 400)).
  2. Wyświetl ship w miejscu określonym przez ship_rect zamiast w stałym punkcie.

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Sprite’y i obrazy

Poćwicz samodzielnie: Edytor online Pygame