Naučte sa vytvárať herné menu a navrhovať používateľské rozhrania bez námahy pomocou nástrojov grafického rozhrania Arcade.

Herné ponuky a používateľské rozhrania (UI) zohrávajú kľúčovú úlohu pri zlepšovaní používateľského zážitku a interakcie s hrou. Arcade, populárna knižnica Python pre vývoj hier, poskytuje výkonné nástroje GUI (Graphical User Interface), ktoré uľahčujú navrhovanie a implementáciu herných ponúk a prvkov používateľského rozhrania.

Vytvorte jednoduchú hru

Pred začatím sa uistite, že máte pip nainštalovaný na vašom zariadení. Na inštaláciu arkádovej knižnice použite tento príkaz:

arkáda na inštaláciu pipu

Začnite vytvorením jednoduchej hry pomocou Arcade.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Táto hra bude obsahovať objekt hráča, ktorý sa môže pohybovať doľava a doprava, a nepriateľský objekt. Tu je kód pre hru:

importovať pasáž

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

triedaHra(arkáda. okno):
def__init__(ja):

instagram viewer

super().__init__(WIDTH, HEIGHT, "Jednoduchá hra")
self.player_x = WIDTH // 2
self.nepriateľ_x = ŠÍRKA - 50
self.game_over = Nepravdivé

defnastaviť(ja):
arcade.set_background_color (arcade.color. BIELY)

defon_draw(ja):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. MODRÁ)
arcade.draw_circle_filled (self.nemy_x, HEIGHT // 2, 20, arcade.color. ČERVENÁ)

defaktualizovať(self, delta_time):
seba.nepriateľ_x += 0.5
ak self.nemy_x >= WIDTH:
self.game_over = Pravda

defon_key_press(ja, kľúč, modifikátory):
ak kľúč == arcade.key. VĽAVO:
self.player_x -= PLAYER_SPEED
elif kľúč == arcade.key. SPRÁVNY:
self.player_x += PLAYER_SPEED

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

Pridanie hry cez obrazovku

Pridajte hru na obrazovku, ktorá zobrazí správu, keď sa nepriateľ sa pohybuje mimo herné okno. Použi arcade.gui. UIManager a arcade.gui. UIMessageBox triedy na dosiahnutie tohto cieľa.

Vytvorte inštanciu UIManager a povoliť ho. Vnútri on_draw metóda, skontrolujte, či je koniec hry je nastavený príznak, a ak áno, nakreslite správcu používateľského rozhrania. The show_game_over_screen metóda vytvára a UIMessageBox so správou o ukončení hry a pridá ju do správcu používateľského rozhrania. Môžete tiež povoliť a zakázať správcu používateľského rozhrania v aktualizovať metóda založená na stave hry.

Vytvorte nový súbor s názvom game-over.py a pridajte kód s nižšie uvedenými aktualizáciami:

importovať pasáž
od arcade.gui importovať UIManager, UIMessageBox

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

triedaHra(arkáda. okno):
def__init__(ja):
super().__init__(WIDTH, HEIGHT, "Jednoduchá hra")
self.player_x = WIDTH // 2
self.nepriateľ_x = ŠÍRKA - 50
self.ui_manager = UIManager()
self.game_over = Nepravdivé

defnastaviť(ja):
arcade.set_background_color (arcade.color. BIELY)
self.ui_manager.enable() # Povoľte správcu používateľského rozhrania

defon_draw(ja):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. MODRÁ)
arcade.draw_circle_filled (self.nemy_x, HEIGHT // 2, 20, arcade.color. ČERVENÁ)
ak self.game_over:
self.ui_manager.draw()

defaktualizovať(self, delta_time):
seba.nepriateľ_x += 0.5
ak self.nemy_x >= WIDTH:
self.show_game_over_screen()
self.game_over = Pravda
ak self.game_over:
self.ui_manager.enable()
inak:
self.ui_manager.disable()

defon_key_press(ja, kľúč, modifikátory):
ak kľúč == arcade.key. VĽAVO:
self.player_x -= PLAYER_SPEED
elif kľúč == arcade.key. SPRÁVNY:
self.player_x += PLAYER_SPEED

defshow_game_over_screen(ja):
message_box = UIMessageBox(
šírka =400,
výška =200,
message_text="Koniec hry!"
)
self.ui_manager.add (správa_box)

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

Nižšie je výstup:

Pridávanie tlačidiel

Teraz vylepšite hru na obrazovke pridaním tlačidiel na reštartovanie hry alebo ukončenie hry. Môžete to dosiahnuť pomocou tlačidlá parametrom UIMessageBox a poskytovanie funkcie spätného volania na spracovanie kliknutí na tlačidlá.

Vytvorte nový súbor s názvom buttony.py a pridajte kód s nižšie uvedenými aktualizáciami:

defshow_game_over_screen(ja):
message_box = UIMessageBox(
šírka =400,
výška =200,
message_text="Koniec hry!",
tlačidlá =("Reštart", "VÝCHOD"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (správa_box)

defon_game_over_button_click(self, button_text):
ak button_text == "Reštart":
self.restart_game()
elif button_text == "VÝCHOD":
arcade.close_window()

defreštart_hra(ja):
self.game_over = Nepravdivé
self.nepriateľ_x = ŠÍRKA - 50
self.ui_manager.clear()

Nižšie je výstup:

V show_game_over_screen metóda, pridajte dve tlačidlá, Reštart a VÝCHOD, do UIMessageBox ich špecifikovaním v tlačidlá parameter. Poskytuje tiež funkciu spätného volania, on_game_over_button_click, aby ste zvládli kliknutia na tlačidlá. Vo funkcii spätného volania skontrolujte, na ktoré tlačidlo ste klikli, a vykonajte príslušnú akciu.

Nástroje grafického používateľského rozhrania Arcade ponúkajú množstvo ďalších funkcií, ktoré môžu ďalej vylepšiť funkčnosť a interaktivitu vašich herných ponúk a návrhov používateľského rozhrania. Tu je niekoľko príkladov:

UIDraggableMixin

The UIDraggableMixin triedu možno použiť na pretiahnutie ľubovoľného widgetu používateľského rozhrania. Poskytuje funkcie na zvládnutie správania ťahania, čo umožňuje používateľom presúvať prvky používateľského rozhrania po obrazovke. Kombinácia tohto mixu s ďalšími widgetmi používateľského rozhrania vám umožňuje vytvárať preťahovateľné okná alebo panely vo vašej hre.

UIMouseFilterMixin

The UIMouseFilterMixin class vám umožňuje zachytiť všetky udalosti myši, ktoré sa vyskytnú v rámci konkrétneho widgetu. Toto je obzvlášť užitočné pre widgety podobné oknám, kde chcete zabrániť tomu, aby udalosti myši ovplyvňovali základné prvky používateľského rozhrania. Filtrovaním udalostí myši môžete ovládať interakciu v rámci miniaplikácie nezávisle.

UIWindowLikeMixin

The UIWindowLikeMixin class poskytuje widgetu podobné správanie ako okno. Spracováva všetky udalosti myši, ktoré sa vyskytnú v rámci hraníc miniaplikácie, a umožňuje potiahnutie miniaplikácie. To je ideálne na vytváranie preťahovateľných okien alebo panelov, s ktorými môžu používatelia interagovať vo vašej hre.

Povrch

The Povrch trieda predstavuje vyrovnávaciu pamäť pre kreslenie prvkov používateľského rozhrania. Abstrahuje kresbu vo vyrovnávacej pamäti a poskytuje metódy na aktiváciu, vymazanie a vykreslenie vyrovnávacej pamäte na obrazovke. Túto triedu môžete použiť interne na vykresľovanie miniaplikácií alebo vlastných prvkov používateľského rozhrania vo vašej hre.

Tieto dodatočné funkcie ponúkajú príležitosti na vytváranie interaktívnejších a dynamickejších používateľských skúseností vo vašich hrách. Experimentujte s týmito funkciami, aby ste pridali jedinečné funkcie a nechali vyniknúť herné menu a dizajn používateľského rozhrania.

Najlepšie postupy pre začlenenie GUI

Pri začleňovaní nástrojov GUI do vašich hier pomocou Arcade je dôležité dodržiavať niektoré osvedčené postupy, aby ste zabezpečili hladký a bezproblémový používateľský zážitok. Tu je niekoľko tipov, ktoré treba mať na pamäti:

Plán a prototyp

Než sa pustíte do implementácie, venujte čas plánovaniu a prototypovaniu herných ponúk a prvkov používateľského rozhrania. Zvážte rozloženie, funkčnosť a vizuálnu estetiku, aby ste zabezpečili koherentný a užívateľsky príjemný dizajn.

Udržujte to konzistentné

Udržujte konzistentný vizuálny štýl a rozloženie v rámci herných ponúk a prvkov používateľského rozhrania. Používateľom to pomáha ľahšie prechádzať vašou hrou a poskytuje súdržný zážitok.

Responzívny dizajn

Navrhnite svoje prvky používateľského rozhrania tak, aby reagovali a prispôsobili sa rôznym veľkostiam obrazovky a rozlíšeniam. To zaisťuje, že vaše herné ponuky a používateľské rozhranie zostanú použiteľné a vizuálne príťažlivé na rôznych zariadeniach.

Efektívne spracovanie udalostí

Efektívne spracovávajte udalosti vstupu používateľov, aby ste zabezpečili citlivé a plynulé interakcie. Vyhnite sa zbytočným výpočtom alebo spracovaniu udalostí, ktoré by mohli spôsobiť oneskorenie alebo oneskorenie odozvy používateľského rozhrania.

Spätná väzba používateľov

Poskytnite používateľom jasnú a okamžitú spätnú väzbu pri interakcii s vašimi hernými ponukami a prvkami používateľského rozhrania. Vizuálne podnety, animácie a zvuková spätná väzba v hrách môže zlepšiť používateľský zážitok a aby hra pôsobila vyleštenejšie.

Dodržiavaním týchto osvedčených postupov môžete vytvárať herné ponuky a návrhy používateľského rozhrania, ktoré sú intuitívne a vizuálne príťažlivé.

Zvýšte zapojenie používateľov pomocou vizuálne príťažlivého používateľského rozhrania

Pridanie prvkov GUI do vašej hry nielen zlepšuje použiteľnosť, ale tiež zvyšuje vizuálnu príťažlivosť a celkové zapojenie hráčov. Či už vytvárate úvodnú ponuku, hru cez obrazovku alebo akýkoľvek iný prvok používateľského rozhrania, nástroje grafického používateľského rozhrania Arcade ponúkajú množstvo funkcií a funkcií na zlepšenie používateľského zážitku z vašej hry.