Naucz się bez wysiłku tworzyć menu gier i projektować interfejsy użytkownika, korzystając z narzędzi GUI firmy Arcade.

Menu gry i interfejsy użytkownika (UI) odgrywają kluczową rolę w zwiększaniu doświadczenia użytkownika i zaangażowania w grę. Arcade, popularna biblioteka Pythona do tworzenia gier, udostępnia potężne narzędzia GUI (graficzny interfejs użytkownika), które ułatwiają projektowanie i wdrażanie menu gier i elementów interfejsu użytkownika.

Stwórz prostą grę

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

Zacznij od stworzenia prostej gry w Arcade.

Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.

Ta gra będzie zawierać obiekt gracza, który może poruszać się w lewo i prawo oraz obiekt wroga. Oto kod do gry:

import arkada

SZEROKOŚĆ = 800
WZROST = 600
PRĘDKOŚĆ_GRACZA = 25

klasaGra(arkada. Okno):
pok__w tym__(samego siebie):

instagram viewer

super().__init__(SZEROKOŚĆ, WYSOKOŚĆ, „Prosta gra”)
self.player_x = SZEROKOŚĆ // 2
self.enemy_x = SZEROKOŚĆ - 50
self.game_over = FAŁSZ

pokorganizować coś(samego siebie):
arcade.set_background_color (arcade.color. BIAŁY)

pokon_draw(samego siebie):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, WYSOKOŚĆ // 2, 20, arkadowy.kolor. NIEBIESKI)
arcade.draw_circle_filled (self.enemy_x, WYSOKOŚĆ // 2, 20, arkadowy.kolor. CZERWONY)

pokaktualizacja(ja, delta_czas):
własny.wróg_x += 0.5
Jeśli self.enemy_x >= SZEROKOŚĆ:
self.game_over = PRAWDA

pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
self.player_x -= PRĘDKOŚĆ_GRACZA
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
self.player_x += PRĘDKOŚĆ_GRACZA

gra = gra()
gra.ustawienia()
arcade.run()

Dodanie ekranu końca gry

Dodaj ekran zakończenia gry, który wyświetla komunikat, gdy wróg porusza się poza oknem gry. Użyj arcade.gui. Menedżer UIM I arcade.gui. UIMessageBox klasy, aby to osiągnąć.

Utwórz instancję Menedżer UIM i włącz go. W środku on_draw metodą sprawdź, czy koniec gry flaga jest ustawiona, a jeśli tak, narysuj menedżera interfejsu użytkownika. The show_game_over_screen metoda tworzy a UIMessageBox z komunikatem o zakończeniu gry i dodaje go do menedżera interfejsu użytkownika. Możesz także włączać i wyłączać menedżera interfejsu użytkownika w pliku aktualizacja metoda oparta na stanie gry.

Utwórz nowy plik o nazwie koniec gry.py i dodaj kod z poniższymi aktualizacjami:

import arkada
z arcade.gui import UIManager, UIMessageBox

SZEROKOŚĆ = 800
WZROST = 600
PRĘDKOŚĆ_GRACZA = 25

klasaGra(arkada. Okno):
pok__w tym__(samego siebie):
super().__init__(SZEROKOŚĆ, WYSOKOŚĆ, „Prosta gra”)
self.player_x = SZEROKOŚĆ // 2
self.enemy_x = SZEROKOŚĆ - 50
self.ui_manager = UIManager()
self.game_over = FAŁSZ

pokorganizować coś(samego siebie):
arcade.set_background_color (arcade.color. BIAŁY)
self.ui_manager.enable() # Włącz menedżera interfejsu użytkownika

pokon_draw(samego siebie):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, WYSOKOŚĆ // 2, 20, arkadowy.kolor. NIEBIESKI)
arcade.draw_circle_filled (self.enemy_x, WYSOKOŚĆ // 2, 20, arkadowy.kolor. CZERWONY)
Jeśli self.game_over:
self.ui_manager.draw()

pokaktualizacja(ja, delta_czas):
własny.wróg_x += 0.5
Jeśli self.enemy_x >= SZEROKOŚĆ:
self.show_game_over_screen()
self.game_over = PRAWDA
Jeśli self.game_over:
self.ui_manager.enable()
w przeciwnym razie:
self.ui_manager.disable()

pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
self.player_x -= PRĘDKOŚĆ_GRACZA
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
self.player_x += PRĘDKOŚĆ_GRACZA

pokshow_game_over_screen(samego siebie):
skrzynka_wiadomosci = UIMessageBox(
szerokość=400,
wysokość=200,
wiadomość_tekst="Koniec gry!"
)
self.ui_manager.add (skrzynka_wiadomości)

gra = gra()
gra.ustawienia()
arcade.run()

Poniżej znajduje się wyjście:

Dodawanie przycisków

Teraz ulepsz ekran końca gry, dodając przyciski, aby ponownie uruchomić grę lub wyjść. Można to osiągnąć za pomocą guziki parametr UIMessageBox oraz zapewnienie funkcji wywołania zwrotnego do obsługi kliknięć przycisków.

Utwórz nowy plik o nazwie przyciski.py i dodaj kod z poniższymi aktualizacjami:

pokshow_game_over_screen(samego siebie):
skrzynka_wiadomosci = UIMessageBox(
szerokość=400,
wysokość=200,
wiadomość_tekst="Koniec gry!",
przyciski=(„Uruchom ponownie”, "Wyjście"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (skrzynka_wiadomości)

pokon_game_over_button_click(ja, tekst_przycisku):
Jeśli tekst_przycisku == „Uruchom ponownie”:
self.restart_game()
Elif tekst_przycisku == "Wyjście":
arcade.close_window()

pokzrestartuj grę(samego siebie):
self.game_over = FAŁSZ
self.enemy_x = SZEROKOŚĆ - 50
self.ui_manager.clear()

Poniżej znajduje się wyjście:

w show_game_over_screen metoda, dodaj dwa przyciski, Uruchom ponownie I Wyjście, do UIMessageBox określając je w guziki parametr. Zapewnij również funkcję oddzwaniania, on_game_over_button_click, do obsługi kliknięć przycisków. Wewnątrz funkcji wywołania zwrotnego sprawdź, który przycisk został kliknięty i wykonaj odpowiednią akcję.

Narzędzia GUI firmy Arcade oferują szereg dodatkowych funkcji, które mogą jeszcze bardziej ulepszyć funkcjonalność i interaktywność menu gier i projektów interfejsów użytkownika. Oto kilka przykładów:

UIDraggableMixin

The UIDraggableMixin class może służyć do przeciągania dowolnego widżetu interfejsu użytkownika. Zapewnia funkcjonalność do obsługi zachowania przeciągania, umożliwiając użytkownikom przesuwanie elementów interfejsu użytkownika po ekranie. Połączenie tej mieszanki z innymi widżetami interfejsu użytkownika umożliwia tworzenie przeciąganych okien lub paneli w grze.

UIMouseFilterMixin

The UIMouseFilterMixin class umożliwia przechwytywanie wszystkich zdarzeń myszy, które występują w określonym widgecie. Jest to szczególnie przydatne w przypadku widżetów przypominających okna, w których chcesz zapobiec wpływowi zdarzeń myszy na podstawowe elementy interfejsu użytkownika. Filtrując zdarzenia myszy, możesz niezależnie kontrolować interakcję w widgecie.

UIWindowLikeMixin

The UIWindowLikeMixin class zapewnia widżetowi zachowanie podobne do okna. Obsługuje wszystkie zdarzenia myszy występujące w granicach widżetu i umożliwia przeciąganie widżetu. Jest to idealne rozwiązanie do tworzenia przeciąganych okien lub paneli, z którymi użytkownicy mogą wchodzić w interakcje w grze.

Powierzchnia

The Powierzchnia class reprezentuje bufor do rysowania elementów interfejsu użytkownika. Abstrahuje rysunek w buforze i zapewnia metody aktywacji, czyszczenia i rysowania bufora na ekranie. Możesz użyć tej klasy wewnętrznie do renderowania widżetów lub niestandardowych elementów interfejsu użytkownika w swojej grze.

Te dodatkowe funkcje oferują możliwości tworzenia bardziej interaktywnych i dynamicznych doświadczeń użytkownika w grach. Eksperymentuj z tymi funkcjami, aby dodać wyjątkową funkcjonalność i wyróżnić menu gry oraz projekty interfejsu użytkownika.

Najlepsze praktyki dotyczące włączania GUI

Włączając narzędzia GUI do swoich gier za pomocą Arcade, ważne jest, aby postępować zgodnie z najlepszymi praktykami, aby zapewnić płynne i bezproblemowe działanie. Oto kilka wskazówek, o których warto pamiętać:

Plan i prototyp

Zanim przejdziesz do implementacji, poświęć czas na planowanie i tworzenie prototypów menu gry i elementów interfejsu użytkownika. Weź pod uwagę układ, funkcjonalność i estetykę wizualną, aby zapewnić spójny i przyjazny dla użytkownika projekt.

Zachowaj spójność

Zachowaj spójny styl wizualny i układ w menu gry i elementach interfejsu użytkownika. Pomaga to użytkownikom łatwiej poruszać się po Twojej grze i zapewnia spójną rozgrywkę.

Elastyczny projekt

Zaprojektuj elementy interfejsu użytkownika tak, aby były responsywne i dostosowywane do różnych rozmiarów i rozdzielczości ekranu. Dzięki temu menu gry i interfejs pozostają użyteczne i atrakcyjne wizualnie na różnych urządzeniach.

Efektywna obsługa zdarzeń

Efektywnie obsługuj zdarzenia wprowadzane przez użytkowników, aby zapewnić responsywne i płynne interakcje. Unikaj zbędnych obliczeń lub przetwarzania zdarzeń, które mogą powodować opóźnienia lub opóźnienia w responsywności interfejsu użytkownika.

Odpowiedź zwrotna użytkownika

Przekazuj jasne i natychmiastowe informacje zwrotne użytkownikom, gdy wchodzą w interakcję z menu gry i elementami interfejsu użytkownika. Wskazówki wizualne, animacje i sprzężenie zwrotne audio w grach może poprawić wrażenia użytkownika i sprawiają, że gra wydaje się bardziej dopracowana.

Postępując zgodnie z tymi najlepszymi praktykami, możesz tworzyć menu gier i projekty interfejsów użytkownika, które są intuicyjne i atrakcyjne wizualnie.

Zwiększ zaangażowanie użytkowników dzięki atrakcyjnemu wizualnie interfejsowi użytkownika

Dodanie elementów GUI do gry nie tylko poprawia użyteczność, ale także zwiększa atrakcyjność wizualną i ogólne zaangażowanie graczy. Niezależnie od tego, czy tworzysz menu startowe, ekran po zakończeniu gry, czy jakikolwiek inny element interfejsu użytkownika, narzędzia GUI firmy Arcade oferują szereg funkcji, które poprawią wrażenia użytkownika z gry.