Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

PyGame to potężna i popularna biblioteka do tworzenia gier dla Pythona. Zapewnia zestaw narzędzi i funkcji ułatwiających tworzenie gier i innych aplikacji interaktywnych. Jedną z przydatnych funkcji PyGame jest możliwość rysowania obiektów i kształtów.

Moduł pygame.draw

W PyGame rysowanie obiektów i kształtów jest prostym procesem. Możesz użyć pygame.draw moduł do rysowania kształtów, takich jak prostokąty, koła, linie i inne.

Przed rozpoczęciem upewnij się, że masz pip zainstalowany na twoim urządzeniu, a następnie użyj tego polecenia, aby zainstalować PyGame moduł:

pip zainstaluj pygame

Rysowanie podstawowych kształtów

The pygame.draw moduł udostępnia kilka funkcji, które umożliwiają rysowanie podstawowych kształtów. Każda funkcja pobiera zestaw parametrów w celu zdefiniowania kształtu i jego położenia.

  • prost(): Za pomocą tej funkcji możesz narysować prostokąt. Jest to jeden z najczęściej używanych kształtów w grach. Za pomocą prostokątów możesz tworzyć platformy, ściany i inne obiekty. Funkcja przyjmuje cztery parametry: powierzchnia (powierzchnia, na której ma zostać narysowany prostokąt), kolor, prostokąt (obiekt Rect) i szerokość (grubość linii).
    instagram viewer
    pygame.draw.rect (powierzchnia, kolor, prostokąt, szerokość)
  • koło(): Narysuj okrąg. Wymaga czterech parametrów: powierzchni, koloru, pozycji (środek okręgu) i promienia.
    pygame.draw.circle (powierzchnia, kolor, pozycja, promień)
  • wielokąt(): Narysuj wielokąt. Przyjmuje cztery parametry: powierzchnię, kolor, punkty (listę punktów definiujących kształt wielokąta) i szerokość.
    pygame.draw.polygon (powierzchnia, kolor, punkty, szerokość) 
  • linia(): Narysuj linię. Przyjmuje cztery parametry: powierzchnia, kolor, pozycja_początkowa i pozycja_końcowa.
    pygame.draw.line (powierzchnia, kolor, pozycja_początkowa, pozycja_końcowa) 

Pełną listę funkcji i ich parametrów można znaleźć na oficjalnej stronie Dokumentacja PyGame dla modułu losowania.

Rysowanie złożonych kształtów

Oprócz podstawowych kształtów, PyGame pozwala również rysować złożone kształty, takie jak łuki, elipsy i linie proste.

  • łuk(): Ta funkcja rysuje łuk na powierzchni. Łuk jest częścią koła. Wymaga sześciu parametrów: powierzchnia, kolor, prostokąt, kąt_początkowy, kąt_końcowy i szerokość. Określ kąty w stopniach, przy czym 0 stopni jest skierowane w prawo i zwiększa się zgodnie z ruchem wskazówek zegara. Parametr width określa grubość łuku.
    pygame.draw.arc (powierzchnia, kolor, prostokąt, kąt_początkowy, kąt_końcowy, szerokość)
  • elipsa(): Narysuj elipsę na powierzchni. Elipsa to rozciągnięty okrąg. Wymaga czterech parametrów: powierzchni, koloru, prostokąta i szerokości.
    pygame.draw.ellipse (powierzchnia, kolor, prostokąt, szerokość)
  • aaline(): służy do rysowania pojedynczej wygładzonej linii na powierzchni. Wygładzanie to technika używana do wygładzania krawędzi kształtu, dzięki czemu wygląda on bardziej naturalnie. Wymaga czterech parametrów, które odzwierciedlają linia() funkcja: powierzchnia, kolor, pozycja_początkowa i pozycja_końcowa.
    pygame.draw.aaline (powierzchnia, kolor, pozycja_początkowa, pozycja_końcowa) 

Tworzenie zagnieżdżonych kształtów w PyGame

Kolejną interesującą cechą PyGame jest możliwość rysowania kształtów wewnątrz innego kształtu. Możesz to zrobić, używając kombinacji podstawowych funkcji rysowania kształtów w PyGame.

Aby narysować kształt wewnątrz innego kształtu, możesz najpierw narysować kształt wewnętrzny, a następnie narysować na nim kształt zewnętrzny. Wewnętrzny kształt może być dowolnym podstawowym kształtem, takim jak prostokąt lub okrąg.

Na przykład, aby narysować prostokąt wewnątrz okręgu, możesz użyć pygame.draw.krąg() aby narysować okrąg, a następnie użyj funkcji pygame.draw.rect() funkcję rysowania na nim prostokąta.

Poniższe przykłady kodu można znaleźć w to repozytorium GitHub.

Oto przykładowy fragment kodu, który pokazuje, jak narysować prostokąt wewnątrz okręgu:

import pygame

# Zainicjuj pygame
pygame.init()

# Utwórz okno
okno = pygame.display.set_mode((800, 600))

# Utwórz krąg
circle_rect = pygame.draw.circle (okno, (255, 255, 255), (400, 300), 100)

# Utwórz powierzchnię dla prostokąta
prostokąt_powierzchnia = pygame. Powierzchnia((50, 50))
prostokąt_powierzchnia.set_colorkey((0, 0, 0))

# Narysuj prostokąt na powierzchni
pygame.draw.rect (rectangle_surface, (255, 0, 0), (0, 0, 50, 50))

# Nałóż powierzchnię na okrąg
window.blit (rectangle_surface, (375, 275))

# Główna pętla
chwilaPRAWDA:
# Wyjście z gry
Do wydarzenie W pygame.event.get():
Jeśli event.type == pygame. ZREZYGNOWAĆ:
pygame.quit()
Wyjście()

# Zaktualizuj wyświetlacz
pygame.display.update()

Tworzy to efekt prostokąta wewnątrz koła. Możesz użyć tej techniki do tworzenia bardziej złożonych kształtów i elementów gry, łącząc wiele kształtów.

Rysowanie obrazów

PyGame pozwala również rysować obrazy. Możesz użyć pygame.image.load() funkcja ładowania obrazu z pliku i pygame.image.blit() funkcja do narysuj obraz na ekranie.

Składnia dla pygame.image.load() wygląda tak:

pygame.image.load (nazwa pliku) 

A oto składnia dla pygame.image.blit():

pygame.image.blit (obraz, prostokąt) 

Oprócz ładowania i rysowania obrazów, PyGame zapewnia również kilka innych funkcji związanych z obrazami. Funkcje te umożliwiają manipulowanie obrazami na różne sposoby, takie jak skalowanie, obracanie, odwracanie i przycinanie.

Dodawanie zaawansowanych funkcji

PyGame zapewnia również kilka zaawansowanych funkcji do rysowania obiektów i kształtów. Na przykład możesz użyć pygame.mouse.get_pos() funkcja, aby uzyskać pozycję myszy i pygame.mouse.get_pressed() funkcja, aby uzyskać stan przycisku myszy. Za pomocą tych funkcji można utworzyć funkcję „kliknij, aby narysować”, która umożliwia rysowanie kształtów za pomocą kliknięcia myszą.

import pygame 

# Zainicjuj pygame
pygame.init()

# Utwórz okno
okno = pygame.display.set_mode((800, 600))

# Główna pętla
chwilaPRAWDA:
# Uzyskaj pozycję myszy
pozycja_myszy = pygame.mouse.get_pos()

# Pobierz stan przycisku myszy
mouse_pressed = pygame.mouse.get_pressed()

# Wyjście z gry
Do wydarzenie W pygame.event.get():
Jeśli event.type == pygame. ZREZYGNOWAĆ:
pygame.quit()
Wyjście()

# Rysowanie okręgu po naciśnięciu myszy
Jeśli wciśnięty_mysz[0] == 1:
pygame.draw.circle (okno, (255, 0, 0), pozycja_myszy, 20)

# Zaktualizuj wyświetlacz
pygame.display.update()

Poniżej znajduje się wyjście:

Z łatwością twórz duszki gier w PyGame

PyGame zapewnia również potężny zestaw narzędzi do łatwego tworzenia sprite'ów i obiektów do gier. z pygame.draw moduł, możesz łatwo tworzyć duszki, których możesz używać w swoich grach. Możesz z łatwością tworzyć postacie, obiekty i inne elementy gry.