Reagowanie na dane wejściowe ma kluczowe znaczenie dla każdej gry i dobrze jest obsługiwać klawiaturę dla użytkowników, którzy ją preferują. Dowiedz się, jak to zrobić, korzystając z biblioteki arkadowej Pythona.

Wprowadzanie danych za pomocą klawiatury jest istotną częścią tworzenia gier, a efektywne korzystanie z niej ma kluczowe znaczenie w celu zapewnienia użytkownikom doskonałych wrażeń. Biblioteka Arcade zapewnia prosty i wydajny sposób obsługi wprowadzania danych z klawiatury w grach Pythona.

Tworzenie prostej gry z graczem

Możesz znaleźć pełny kod w to repozytorium GitHub.

Zanim zagłębisz się w obsługę danych wprowadzanych z klawiatury, upewnij się, że masz pip zainstalowany w twoim urządzeniu. Użyj tego polecenia, aby zainstalować bibliotekę arcade:

zręcznościowa instalacja pip

Następnie utwórz szkielet prostej gry:

import arkada

SZEROKOŚĆ_EKRANU = 640
WYSOKOŚĆ_EKRANU = 480

klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość, "Moja gra")
arcade.set_background_color (arcade.color. BIAŁY)

pokon_draw(samego siebie):
arcade.start_render()

pokaktualizacja(ja, delta_czas):
przechodzić

Moja gra (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

Spowoduje to utworzenie okna z białym tłem. Następnie dodaj gracza do swojej gry:

klasaGracz:
pok__w tym__(ja, x, y):
ja.x = x
ja.y = y
prędkość własna = 5
promień własny = 20

pokrysować(samego siebie):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. NIEBIESKI)

pokprzesuń w lewo(samego siebie):
własny.x -= własny.prędkość

pokruch w prawo(samego siebie):
własny.x += własny.prędkość

pokruch w górę(samego siebie):
własny.y += własny.prędkość

pokpadnij(samego siebie):
self.y -= self.speed

Tworzy to prostego gracza z niebieskim kółkiem. Możesz dodać tego gracza do swojej gry, modyfikując plik Moja gra klasa:

import arkada

SZEROKOŚĆ_EKRANU = 640
WYSOKOŚĆ_EKRANU = 480

klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość, "Moja gra")
arcade.set_background_color (arcade.color. BIAŁY)
self.player = Gracz (SCREEN_WIDTH // 2, WYSOKOŚĆ_EKRANU // 2)

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

pokaktualizacja(ja, delta_czas):
przechodzić

pokgłówny():
Moja gra (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

Jeśli __nazwa__ == "__główny__":
główny()

Teraz masz gracza w swojej grze, którego możesz narysować na ekranie.

Reagowanie na naciśnięcia i wydania klawiszy

Aby reagować na działania użytkownika w grze, musisz obsługiwać naciśnięcia i zwolnienia klawiszy. Biblioteka Arcade zapewnia dwie metody obsługi tych zdarzeń: on_key_press I on_key_release.

Aby użyć tych metod, musisz zdefiniować je w pliku arkada. Okno podklasa. Kiedy gracz naciśnie lub zwolni klawisz, Arcade uruchomi odpowiednią metodę, przekazując mu dwa argumenty: klawisz i modyfikatory. klucz jest liczbą całkowitą reprezentującą kod klawisza naciśniętego lub zwolnionego klawisza. modyfikatory to pole bitowe reprezentujące wszystkie klawisze modyfikujące, które gracz również nacisnął, takie jak Shift lub Control.

Oto przykład reakcji na naciśnięcie klawisza w grze:

klasaMoja gra(arkada. Okno):
pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
# Przesuń gracza w lewo
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
# Przesuń gracza w prawo
Elif klucz == klucz.zręcznościowy. W GÓRĘ:
# Przenieś gracza w górę
Elif klucz == klucz.zręcznościowy. W DÓŁ:
# Przenieś gracza w dół

Aby odpowiedzieć na kluczowe wydania, możesz zdefiniować on_key_release sposób w ten sam sposób:

klasaMoja gra(arkada. Okno):
pokon_key_release(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
# Przestań przesuwać gracza w lewo
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
# Przestań przesuwać gracza w prawo
Elif klucz == klucz.zręcznościowy. W GÓRĘ:
# Przestań przesuwać odtwarzacz w górę
Elif klucz == klucz.zręcznościowy. W DÓŁ:
# Przestań przesuwać gracza w dół

Ważne jest, aby pamiętać, że przechwytywanie dane wejściowe użytkownika w pygame wymaga ręcznego sprawdzania zdarzeń w pętli gry. Z drugiej strony biblioteka Arcade automatycznie wywołuje odpowiednie metody, gdy gracz naciska lub puszcza klawisz. Oznacza to, że nie musisz ręcznie sprawdzać kluczowych zdarzeń w pętli gry, oszczędzając sobie kłopotów z dodatkowym kodem.

Dostosowywanie obsługi klawiatury do potrzeb Twojej gry

Biblioteka Arcade zapewnia wiele sposobów dostosowywania klawiatury. Możesz chcieć zmienić przypisania klawiszy w swojej grze lub pozwolić graczowi dostosować własne przypisania klawiszy.

Możesz to zrobić, definiując słownik mapa_kluczy który odwzorowuje każdy klucz na odpowiednią metodę obiektu gracza. Aby umożliwić graczowi dostosowanie przypisań klawiszy, możesz dodać menu ustawień, które modyfikuje mapa_kluczy słownik oparty na preferencjach gracza.

Oto przykład:

klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość, tytuł):
super().__init__(szerokość, wysokość, tytuł)
sam.gracz = Gracz(100, 100)

self.key_map = {
klucz.zręcznościowy. LEWA: self.player.move_left,
klucz.zręcznościowy. PO PRAWEJ: self.player.move_right,
klucz.zręcznościowy. W GÓRĘ: self.player.move_up,
klucz.zręcznościowy. W DÓŁ: self.player.move_down
}

pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz W self.key_map:
self.mapa_klawiszy[klucz]()

pokon_key_release(ja, klucz, modyfikatory):
Jeśli klucz W self.key_map:
self.mapa_kluczy [klawisz + 1]()

Reaguj na dane wprowadzane przez użytkownika w czasie rzeczywistym

Reagowanie na dane wprowadzane przez użytkownika w czasie rzeczywistym jest niezbędnym aspektem tworzenia wciągającej gry. Poświęcając trochę czasu na prawidłowe wprowadzanie danych z klawiatury w swojej grze, możesz stworzyć bardziej wciągającą i wciągającą grę wciągające wrażenia dla twoich graczy, a ostatecznie sprawi, że twoja gra będzie się wyróżniać w tłumie rynek.