Wczytaj obraz
Część sekcji Sprite’y i obrazy ścieżki Pygame w Coddy. Lekcja 1 z 36.
Gry rysują obrazki, nie tylko kształty. Obrazek pochodzi z pliku graficznego, a pygame zamienia plik w Surface, czyli coś takiego jak okno: siatkę pikseli, po której możesz rysować.
ship = pygame.image.load("assets/images/ship.png").convert_alpha()Ścieżka jest względna względem pliku main.py: obok niego znajduje się folder assets, a karta Assets obok gry wyświetla wszystkie znajdujące się w nim pliki.
convert_alpha() kopiuje obrazek do własnego formatu pikseli okna, dzięki czemu rysowanie go w każdej klatce jest szybkie i zachowuje przezroczyste piksele. Ta metoda wymaga okna, więc wczytuj obrazki po set_mode. Wczytaj każdy obrazek raz, przed pętlą: odczytywanie pliku 60 razy na sekundę spowalnia grę.
Aby narysować obrazek, użyj metody blit, by umieścić go na oknie. Pozycja określa, gdzie znajdzie się jego lewy górny róg:
screen.blit(ship, (288, 208))Użyj blit po screen.fill(...), w przeciwnym razie wypełnienie zamaluje obrazek.
Wyzwanie
Łatwy- Po
set_modewczytajassets/images/ship.pngza pomocą.convert_alpha()do zmiennej o nazwieship. - W pętli, po wypełnieniu, wyświetl
ship, ustawiając jego lewy górny róg w punkcie(288, 208). Statek ma wymiary 64 na 64 piksele, więc znajduje się na środku okna o wymiarach 640 na 480.
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()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((20, 22, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
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