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.
Wyzwanie
Łatwy- Po załadowaniu
shiputwórzship_rect = ship.get_rect(center=(320, 400)). - Wyświetl
shipw miejscu określonym przezship_rectzamiast 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()
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
1Wczytywanie obrazów
Wczytaj obrazUmieść go za pomocą RectPrzesuń obrazPowiel tłoPrzezroczyste piksele2Obracaj, odbijaj, skaluj
Obracaj wokół środkaKieruj się w stronę lotuSkaluj obrazObracaj względem oryginału5Kolizje z dokładnością do piksela
Prostokąty wydają się niesprawiedliweMaskiSprite’y z dokładnością do pikselaKołowe hitboxy6Animacja z arkuszy sprite’ów
Przytnij arkusz sprite’ówLicznik klatekAnimacja w czasieJednorazowa eksplozjaPoćwicz samodzielnie: Edytor online Pygame