Wpraw swoją główną postać w ruch w odpowiedzi na działania gracza za pomocą zdarzeń klawiatury i myszy w bibliotece Arcade.

Arcade to popularna biblioteka Pythona, której można używać do tworzenia gier zręcznościowych 2D. Jest to łatwa w użyciu biblioteka, która zapewnia prosty framework do tworzenia gier w Pythonie.

Jednym z podstawowych elementów każdej gry jest ruch gracza.

Tworzenie prostej gry w Arcade

Możesz znaleźć komplet kod w tym repozytorium GitHub.

Zanim zaczniesz, upewnij się, że masz pip zainstalowany na twoim urządzeniu. Użyj tego polecenia, aby zainstalować bibliotekę arcade:

biblioteka instalacyjna pip

Następnie utwórz klasę Player jako podklasę klasy arkada. Krasnoludek klasa i A Moja gra klasa jako podklasa arkada. Okno. The Moja gra klasa będzie miała metody konfigurowania obiektów gry, renderowania ich na ekranie, aktualizowania stanu gry i obsługi danych wejściowych użytkownika. Kod do tworzenia ekranu gry i obiektu gracza jest następujący:

import arkada

SZEROKOŚĆ_EKRANU = 800
WYSOKOŚĆ_EKRANU = 600

instagram viewer

klasaGracz(arkada. Krasnoludek):
pok__w tym__(samego siebie):
super().__init__("gracz.png", 0.5)
self.center_x = SZEROKOŚĆ_EKRANU // 2
self.center_y = WYSOKOŚĆ_EKRANU // 2

klasaMoja gra(arkada. Okno):
pok__w tym__(samego siebie):
super().__init__(SZEROKOŚĆ_EKRANU, WYSOKOŚĆ_EKRANU, "Moja gra")
sam.gracz = Nic
arcade.set_background_color (arcade.color. CZARNY)

pokorganizować coś(samego siebie):
sam.gracz = Gracz()

pokon_draw(samego siebie):
arcade.start_render()
sam.gracz.draw()

pokaktualizacja(ja, delta_czas):
przechodzić

Moja Gra().run()

Dodawanie ruchu gracza za pomocą klawiatury

Teraz, po utworzeniu ekranu gry i obiektu gracza, możesz przesuwać gracza w odpowiedzi na wprowadzanie z klawiatury. Zdefiniuj on_key_press() I on_key_release() metody, które wywołasz, gdy gracz naciśnie lub zwolni klawisz.

pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
sam.gracz.zmiana_x = -5
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
sam.gracz.zmiana_x = 5
Elif klucz == klucz.zręcznościowy. W GÓRĘ:
self.player.change_y = 5
Elif klucz == klucz.zręcznościowy. W DÓŁ:
self.player.change_y = -5

pokon_key_release(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY Lub klucz == klucz.zręcznościowy. PRAWIDŁOWY:
sam.gracz.zmiana_x = 0
Elif klucz == klucz.zręcznościowy. W GÓRĘ Lub klucz == klucz.zręcznościowy. W DÓŁ:
self.player.change_y = 0

Dodając ruch gracza za pomocą klawiatury, możesz dostosować prędkość ruchu, zmieniając przypisaną wartość sam.gracz.zmiana_x I self.player.change_y. Możesz także dodać warunki ograniczające ruch gracza na ekranie gry.

Dodawanie ruchu gracza za pomocą myszy

Oprócz wprowadzania danych z klawiatury możesz także dodawać ruchy gracza za pomocą myszy. Zdefiniuj on_mouse_motion() metoda, która zostanie uruchomiona, gdy gracz poruszy myszką. Wewnątrz metody ustaw centrum_x I center_y właściwości obiektu gracza do bieżącej pozycji myszy.

pokon_mouse_motion(ja, x, y, dx, dy):
sam.gracz.centrum_x = x
self.player.center_y = y

Dodając ruch gracza za pomocą myszy, możesz dostosować zachowanie obiektu gracza, gdy użytkownik kliknie lub przytrzyma mysz, definiując metody, takie jak on_mouse_press() Lub on_mouse_drag(). Możesz użyć tych metod, aby wywołać akcje gracza, takie jak strzelanie lub skakanie, w zależności od mechaniki gry.

Przedstawiamy dodatkowe funkcje

Możesz dodatkowo poprawić ruch gracza, biorąc pod uwagę przyspieszenie i spowolnienie. Zmodyfikuj on_key_press() metoda odejmowania lub dodawania do zmiana_x I zmiana_y właściwości obiektu gracza w zależności od kierunku ruchu. Ustaw również zmiana_x I zmiana_y właściwości na 0 w on_key_release() sposób, jak poprzednio.

pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
sam.gracz.zmiana_x -= 5
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
sam.gracz.zmiana_x += 5
Elif klucz == klucz.zręcznościowy. W GÓRĘ:
self.player.change_y += 5
Elif klucz == klucz.zręcznościowy. W DÓŁ:
self.player.change_y -= 5

pokon_key_release(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY Lub klucz == klucz.zręcznościowy. PRAWIDŁOWY:
sam.gracz.zmiana_x = 0
Elif klucz == klucz.zręcznościowy. W GÓRĘ Lub klucz == klucz.zręcznościowy. W DÓŁ:
self.player.change_y = 0

Podobnie jak PyGame, możesz też dodaj wykrywanie kolizji między obiektem gracza oraz inne obiekty gry, takie jak wrogowie lub przeszkody w salonie gier. Możesz to osiągnąć, dodając następujący kod do pliku aktualizacja() metoda tzw Moja gra klasa:

pokaktualizacja(ja, delta_czas):
sam.gracz.aktualizacja()

# Sprawdź kolizje między graczem a innymi obiektami gry
kolizje = arcade.check_for_collision_with_list (self.player, self.enemy_list)

Do kolizja W kolizje:
kolizja.zabij()

Twórz wciągające gry z interaktywnym ruchem gracza

Interaktywny ruch gracza jest kluczowym aspektem każdej wciągającej gry. Wykorzystanie różnych rodzajów mechaniki ruchu, takich jak skakanie, bieganie, latanie i ślizganie się, może urozmaicić i podekscytować grę.

Zapewnienie graczom kontroli nad ich ruchem dodaje poczucia sprawczości i immersji, co może prowadzić do bardziej satysfakcjonujących wrażeń z gry.