Naučte se snadno vytvářet herní menu a navrhovat uživatelská rozhraní pomocí nástrojů GUI Arcade.

Herní menu a uživatelská rozhraní (UI) hrají klíčovou roli při zlepšování uživatelského zážitku a zapojení hry. Arcade, oblíbená knihovna Pythonu pro vývoj her, poskytuje výkonné nástroje GUI (Graphical User Interface), které usnadňují navrhování a implementaci herních nabídek a prvků uživatelského rozhraní.

Vytvořte jednoduchou hru

Než začnete, ujistěte se, že máte pip nainstalovaný na vašem zařízení. K instalaci arkádové knihovny použijte tento příkaz:

pip instalační arkáda

Začněte vytvořením jednoduché hry pomocí Arcade.

Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.

Tato hra bude obsahovat objekt hráče, který se může pohybovat doleva a doprava, a nepřátelský objekt. Zde je kód ke hře:

import pasáž

ŠÍŘKA = 800
VÝŠKA = 600
PLAYER_SPEED = 25

třídaHra(pasáž. Okno):
def__init__(já):
super().__init__(WIDTH, HEIGHT, "Jednoduchá hra")
self.player_x = WIDTH // 2
self.nemy_x = WIDTH - 50
self.game_over = Nepravdivé

instagram viewer

defzaložit(já):
arcade.set_background_color (arcade.color. BÍLÝ)

defon_draw(já):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arkáda.barva. MODRÝ)
arcade.draw_circle_filled (self.nemy_x, HEIGHT // 2, 20, arkáda.barva. ČERVENÉ)

defAktualizace(self, delta_time):
sebe.nepřítel_x += 0.5
-li self.nemy_x >= WIDTH:
self.game_over = Skutečný

defon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
self.player_x -= RYCHLOST HRÁČE
elif klíč == arcade.key. ŽE JO:
self.player_x += RYCHLOST HRÁČE

hra = hra()
game.setup()
arcade.run()

Přidání hry přes obrazovku

Přidejte hru přes obrazovku, která zobrazí zprávu, když je nepřítel se pohybuje mimo herní okno. Použijte arcade.gui. UIManager a arcade.gui. UIMessageBox třídy, jak toho dosáhnout.

Vytvořte instanci UIManager a povolit ji. Uvnitř on_draw metoda, zkontrolujte, zda konec hry je nastaven příznak, a pokud ano, nakreslete správce uživatelského rozhraní. The show_game_over_screen metoda vytváří a UIMessageBox se zprávou o ukončení hry a přidá ji do správce uživatelského rozhraní. Můžete také povolit a zakázat správce uživatelského rozhraní v Aktualizace metoda založená na stavu hry.

Vytvořte nový soubor s názvem game-over.py a přidejte kód s níže uvedenými aktualizacemi:

import pasáž
z arcade.gui import UIManager, UIMessageBox

ŠÍŘKA = 800
VÝŠKA = 600
PLAYER_SPEED = 25

třídaHra(pasáž. Okno):
def__init__(já):
super().__init__(WIDTH, HEIGHT, "Jednoduchá hra")
self.player_x = WIDTH // 2
self.nemy_x = WIDTH - 50
self.ui_manager = UIManager()
self.game_over = Nepravdivé

defzaložit(já):
arcade.set_background_color (arcade.color. BÍLÝ)
self.ui_manager.enable() # Povolte správce uživatelského rozhraní

defon_draw(já):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arkáda.barva. MODRÝ)
arcade.draw_circle_filled (self.nemy_x, HEIGHT // 2, 20, arkáda.barva. ČERVENÉ)
-li self.game_over:
self.ui_manager.draw()

defAktualizace(self, delta_time):
sebe.nepřítel_x += 0.5
-li self.nemy_x >= WIDTH:
self.show_game_over_screen()
self.game_over = Skutečný
-li self.game_over:
self.ui_manager.enable()
jiný:
self.ui_manager.disable()

defon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
self.player_x -= RYCHLOST HRÁČE
elif klíč == arcade.key. ŽE JO:
self.player_x += RYCHLOST HRÁČE

defshow_game_over_screen(já):
message_box = UIMessageBox(
šířka=400,
výška =200,
text_zprávy="Konec hry!"
)
self.ui_manager.add (schránka_zprávy)

hra = hra()
game.setup()
arcade.run()

Níže je výstup:

Přidání tlačítek

Nyní vylepšete hru přes obrazovku přidáním tlačítek pro restartování hry nebo ukončení. Toho můžete dosáhnout pomocí tlačítka parametr UIMessageBox a poskytování funkce zpětného volání pro zpracování kliknutí na tlačítka.

Vytvořte nový soubor s názvem tlačítka.py a přidejte kód s níže uvedenými aktualizacemi:

defshow_game_over_screen(já):
message_box = UIMessageBox(
šířka=400,
výška =200,
text_zprávy="Konec hry!",
tlačítka =("Restartovat", "Výstup"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (schránka_zprávy)

defon_game_over_button_click(self, button_text):
-li button_text == "Restartovat":
self.restart_game()
elif button_text == "Výstup":
arcade.close_window()

defrestart_game(já):
self.game_over = Nepravdivé
self.nemy_x = WIDTH - 50
self.ui_manager.clear()

Níže je výstup:

V show_game_over_screen metoda, přidejte dvě tlačítka, Restartujte a Výstup, k UIMessageBox jejich specifikací v tlačítka parametr. Poskytuje také funkci zpětného volání, on_game_over_button_click, abyste zvládli kliknutí na tlačítka. Uvnitř funkce zpětného volání zkontrolujte, na které tlačítko bylo kliknuto, a proveďte odpovídající akci.

Nástroje grafického uživatelského rozhraní Arcade nabízejí řadu dalších funkcí, které mohou dále zlepšit funkčnost a interaktivitu vašich herních nabídek a návrhů uživatelského rozhraní. Zde je několik příkladů:

UIDraggableMixin

The UIDraggableMixin třídy lze použít k přetažení libovolného widgetu uživatelského rozhraní. Poskytuje funkce pro manipulaci s přetahováním a umožňuje uživatelům přesouvat prvky uživatelského rozhraní po obrazovce. Kombinace tohoto mixu s dalšími widgety uživatelského rozhraní vám umožňuje vytvářet ve hře přetahovatelná okna nebo panely.

UIMouseFilterMixin

The UIMouseFilterMixin class umožňuje zachytit všechny události myši, které se vyskytují v rámci konkrétního widgetu. To je užitečné zejména pro widgety podobné oknu, kde chcete zabránit tomu, aby události myši ovlivňovaly základní prvky uživatelského rozhraní. Filtrováním událostí myši můžete ovládat interakci v rámci widgetu nezávisle.

UIWindowLikeMixin

The UIWindowLikeMixin class poskytuje widgetu chování podobné oknu. Zpracovává všechny události myši, které nastanou v rámci hranic widgetu, a umožňuje widget přetáhnout. To je ideální pro vytváření přetahovatelných oken nebo panelů, se kterými mohou uživatelé ve vaší hře pracovat.

Povrch

The Povrch třída představuje vyrovnávací paměť pro kreslení prvků uživatelského rozhraní. Abstrahuje kresbu na vyrovnávací paměti a poskytuje metody pro aktivaci, vymazání a vykreslení vyrovnávací paměti na obrazovce. Tuto třídu můžete použít interně pro vykreslování widgetů nebo vlastních prvků uživatelského rozhraní ve vaší hře.

Tyto dodatečné funkce nabízejí příležitosti pro vytváření interaktivnějších a dynamičtějších uživatelských zážitků ve vašich hrách. Experimentujte s těmito funkcemi a přidejte jedinečné funkce a nechte vyniknout herní menu a návrhy uživatelského rozhraní.

Nejlepší postupy pro začlenění GUI

Při začleňování nástrojů GUI do vašich her pomocí Arcade je důležité dodržovat některé osvědčené postupy, abyste zajistili hladký a bezproblémový uživatelský zážitek. Zde je několik tipů, které je třeba mít na paměti:

Plán a prototyp

Než se pustíte do implementace, věnujte čas plánování a prototypování herních nabídek a prvků uživatelského rozhraní. Zvažte rozvržení, funkčnost a vizuální estetiku, abyste zajistili koherentní a uživatelsky přívětivý design.

Udržujte to konzistentní

Udržujte konzistentní vizuální styl a rozvržení napříč herními menu a prvky uživatelského rozhraní. To uživatelům usnadňuje procházení vaší hry a poskytuje soudržný zážitek.

Responzivní design

Navrhněte prvky uživatelského rozhraní tak, aby byly citlivé a přizpůsobitelné různým velikostem obrazovky a rozlišením. To zajišťuje, že vaše herní menu a uživatelské rozhraní zůstanou použitelné a vizuálně přitažlivé na různých zařízeních.

Efektivní zpracování událostí

Efektivně zpracujte události uživatelského vstupu, abyste zajistili citlivé a hladké interakce. Vyhněte se zbytečným výpočtům nebo zpracování událostí, které by mohly způsobit zpoždění nebo zpoždění odezvy uživatelského rozhraní.

Uživatelská zpětná vazba

Poskytněte uživatelům jasnou a okamžitou zpětnou vazbu při interakci s vašimi herními nabídkami a prvky uživatelského rozhraní. Vizuální podněty, animace a zvuková zpětná vazba ve hrách může zlepšit uživatelský zážitek a aby hra působila uhlazeněji.

Dodržováním těchto osvědčených postupů můžete vytvářet herní nabídky a návrhy uživatelského rozhraní, které jsou intuitivní a vizuálně přitažlivé.

Zvyšte zapojení uživatelů pomocí vizuálně přitažlivého uživatelského rozhraní

Přidání prvků GUI do vaší hry nejen zlepšuje použitelnost, ale také zvyšuje vizuální přitažlivost a celkové zapojení hráčů. Ať už vytváříte úvodní nabídku, hru přes obrazovku nebo jakýkoli jiný prvek uživatelského rozhraní, nástroje grafického uživatelského rozhraní Arcade nabízejí řadu funkcí a funkcí pro vylepšení uživatelského zážitku z vaší hry.