Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy
  1. Po set_mode wczytaj assets/images/ship.png za pomocą .convert_alpha() do zmiennej o nazwie ship.
  2. 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

Poćwicz samodzielnie: Edytor online Pygame