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 = 25triedaHra(arkáda. okno):
def__init__(ja):
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 = Pravdadefon_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 = 25triedaHra(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 rozhraniadefon_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_SPEEDdefshow_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.