Wiele gier używa sprite'ów do reprezentowania postaci gracza lub wrogów. Dowiedz się, jak biblioteka Arcade w Pythonie ułatwia pracę z nimi.
Biblioteka Arcade w Pythonie zapewnia bezproblemowy i intuicyjny sposób włączania duszków do projektów tworzenia gier. Sprite'y to podstawowe elementy, które nadają twoim grom atrakcyjność wizualną, interaktywność i dynamiczny ruch.
Dzięki prostej składni Arcade i potężnym funkcjom dodawanie sprite'ów staje się dziecinnie proste. Biblioteka pozwala bez wysiłku ulepszać swoje gry za pomocą urzekających postaci i obiektów.
Tworzenie prostej gry
Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.
Zanim zaczniesz, upewnij się, że masz pip zainstalowany na twoim urządzeniu. Użyj tego polecenia, aby zainstalować bibliotekę arcade:
zręcznościowa instalacja pip
Rozpocznij od stworzenia prostej gry przy użyciu biblioteki Arcade w języku Python. W tej grze gracz będzie mógł poruszać się w lewo i prawo.
Utwórz klasę MyGame, która dziedziczy z
arkada. Okno. Następnie zdefiniuj metodę konfiguracji, aby zainicjować zmienne i plik on_draw metoda rysowania obiektów gry. The on_key_press Metoda pozwala graczowi przesuwać niebieski prostokąt w lewo lub w prawo.Oto kod twojej podstawowej gry:
import arkada
SZEROKOŚĆ_EKRANU = 640
WYSOKOŚĆ_EKRANU = 480klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość)
arcade.set_background_color (arcade.color. BIAŁY)
pokorganizować coś(samego siebie):
sam.gracz_x = 320
pokon_draw(samego siebie):
arcade.start_render()
arcade.draw_rectangle_filled (self.player_x, 50, 50, 50, arkadowy.kolor. NIEBIESKI)
pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
sam.gracz_x -= 10
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
sam.gracz_x += 10pokgłówny():
gra = moja gra (SCREEN_WIDTH, SCREEN_HEIGHT)
gra.ustawienia()
arcade.run()
Jeśli __nazwa__ == "__główny__":
główny()
Jak dodać duszki do swojej gry
Teraz, gdy masz prostą grę, nadszedł czas, aby ją ulepszyć, dodając sprite'y. Możesz tworzyć duszki za pomocą arkada. Krasnoludek klasa. Możesz załadować obrazy, aby reprezentować twoje sprite'y i używać ich w swojej grze.
Załaduj plik obrazu o nazwie odtwarzacz.png aby stworzyć sprite'a gracza. Ustaw początkową pozycję duszka na środku ekranu. w on_draw metody, narysuj duszka gracza za pomocą funkcji rysowania.
klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość)
arcade.set_background_color (arcade.color. BIAŁY)
self.player_sprite = Nic
pokorganizować coś(samego siebie):
self.player_sprite = zręcznościowa. Krasnoludek("gracz.png")
self.player_sprite.center_x = SZEROKOŚĆ_EKRANU // 2
self.player_sprite.center_y = WYSOKOŚĆ_EKRANU // 2
pokon_draw(samego siebie):
arcade.start_render()
self.player_sprite.draw()
pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
self.player_sprite.change_x = -5
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
self.player_sprite.change_x = 5
pokaktualizacja(ja, delta_czas):
self.player_sprite.update()
Dodatkowe funkcje Sprite'a
Sprite'y w Arcade oferują funkcje wykraczające poza podstawowy ruch. Na przykład możesz zmienić rozmiar duszka, ustawiając jego atrybut skali.
Możesz ustawić atrybut skali duszka gracza na 0,5, aby zmniejszyć go o połowę.
klasaMoja gra(arkada. Okno):
pokorganizować coś(samego siebie):
self.player_sprite = zręcznościowa. Krasnoludek("gracz.png", skala =0.5)
Kontrolowanie ruchu duszków
Sprite'y w Arcade zapewniają różne sposoby kontrolować ruch gracza. poza tym zmiana_x atrybut, możesz użyć zmiana_y atrybut do sterowania ruchem pionowym. W przypadku bardziej złożonych wzorców ruchu można również użyć metody zmień_kąt atrybut, aby obrócić duszka.
self.player_sprite.change_angle = SZYBKOŚĆ_OBROTU
Łącząc te atrybuty z wprowadzaniem danych za pomocą klawiatury lub myszy, możesz tworzyć dynamiczne i responsywne sterowanie ruchem dla duszków w grze.
Dodanie wykrywania kolizji za pomocą duszków
Wykrywanie kolizji ma kluczowe znaczenie w wielu grach. Dzięki Arcade możesz łatwo wykrywać kolizje między sprite'ami za pomocą arcade.check_for_collision funkcjonować. Zmodyfikujmy kod tak, aby uwzględniał wykrywanie kolizji między duszkiem gracza a innym wywoływanym duszkiem przeszkoda.png:
klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość)
arcade.set_background_color (arcade.color. BIAŁY)
self.player_sprite = Nic
pokorganizować coś(samego siebie):
self.player_sprite = zręcznościowa. Krasnoludek("gracz.png", skala =0.1)
self.obstacle_sprite = zręcznościowa. Krasnoludek("przeszkoda.png", skala = 0.1)
self.obstacle_sprite.center_x = SZEROKOŚĆ_EKRANU
self.obstacle_sprite.center_y = WYSOKOŚĆ_EKRANU // 2
self.player_sprite.center_x = SZEROKOŚĆ_EKRANU // 2
self.player_sprite.center_y = WYSOKOŚĆ_EKRANU // 2
pokon_draw(samego siebie):
arcade.start_render()
self.player_sprite.draw()
self.obstacle_sprite.draw()
pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
self.player_sprite.change_x = -5
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
self.player_sprite.change_x = 5
pokaktualizacja(ja, delta_czas):
self.player_sprite.update()
self.obstacle_sprite.update()
Jeśli arcade.check_for_collision (self.player_sprite, self.obstacle_sprite):
wydrukować(„Wykryto kolizję!”)
Spraw, by Twoje gry były bardziej wciągające dzięki duszkom
Sprite'y sprawiają, że postacie, obiekty i animacje wyglądają realistycznie i ekscytująco. Mogą się poruszać, zderzać i wchodzić w interakcje z innymi rzeczami w Twojej grze, dzięki czemu gra wydaje się bardziej realistyczna i zabawna.
Używając sprite'ów, możesz tworzyć gry, które podtrzymują zainteresowanie graczy i chcą więcej grać. Sprite'y otwierają świat możliwości tworzenia wciągających i zapadających w pamięć gier.