Naučite se ustvarjati igralne menije in brez težav oblikovati uporabniške vmesnike z orodji GUI podjetja Arcade.

Igralni meniji in uporabniški vmesniki (UI) igrajo ključno vlogo pri izboljšanju uporabniške izkušnje in angažiranosti igre. Arcade, priljubljena knjižnica Python za razvoj iger, ponuja zmogljiva orodja GUI (grafični uporabniški vmesnik), ki olajšajo oblikovanje in implementacijo menijev igre in elementov uporabniškega vmesnika.

Ustvari preprosto igro

Preden začnete, se prepričajte, da imate pip nameščen v vaši napravi. Za namestitev arkadne knjižnice uporabite ta ukaz:

pip install arkada

Začnite z ustvarjanjem preproste igre z Arcade.

Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.

Ta igra bo vsebovala predmet igralca, ki se lahko premika levo in desno, in sovražni predmet. Tukaj je koda za igro:

uvoz arkada

ŠIRINA = 800
VIŠINA = 600
PLAYER_SPEED = 25

razredIgra(arkadne. okno):
def__v__(sebe):
super().__init__(ŠIRINA, VIŠINA,

instagram viewer
"Enostavna igra")
self.player_x = WIDTH // 2
self.enemy_x = WIDTH - 50
self.game_over = False

defnastaviti(sebe):
arcade.set_background_color (arcade.color. BELA)

defon_draw(sebe):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, VIŠINA // 2, 20, arcade.color. MODRA)
arcade.draw_circle_filled (self.enemy_x, VIŠINA // 2, 20, arcade.color. RDEČA)

defnadgradnja(sam, delta_time):
self.nemy_x += 0.5
če self.enemy_x >= WIDTH:
self.game_over = Prav

defna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
self.player_x -= PLAYER_SPEED
elif ključ == arcade.key. PRAV:
self.player_x += PLAYER_SPEED

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

Dodajanje zaslona Game Over

Dodajte zaslon za konec igre, ki prikaže sporočilo, ko sovražnik se premakne izven igralnega okna. Uporabi arcade.gui. UIManager in arcade.gui. UIMessageBox razrede, da bi to dosegli.

Ustvarite primerek UIManager in ga omogočite. Znotraj on_draw način, preverite, ali je konec igre zastavica je nastavljena, in če je, narišite upravitelja uporabniškega vmesnika. The show_game_over_screen metoda ustvarja a UIMessageBox s sporočilom o koncu igre in ga doda upravitelju uporabniškega vmesnika. Prav tako lahko omogočite in onemogočite upravitelja uporabniškega vmesnika v nadgradnja metoda, ki temelji na stanju igre.

Ustvari novo datoteko z imenom konec igre.py in dodajte kodo s spodnjimi posodobitvami:

uvoz arkada
od arcade.gui uvoz UIManager, UIMessageBox

ŠIRINA = 800
VIŠINA = 600
PLAYER_SPEED = 25

razredIgra(arkadne. okno):
def__v__(sebe):
super().__init__(ŠIRINA, VIŠINA, "Enostavna igra")
self.player_x = WIDTH // 2
self.enemy_x = WIDTH - 50
self.ui_manager = UIManager()
self.game_over = False

defnastaviti(sebe):
arcade.set_background_color (arcade.color. BELA)
self.ui_manager.enable() # Omogoči upravitelja uporabniškega vmesnika

defon_draw(sebe):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, VIŠINA // 2, 20, arcade.color. MODRA)
arcade.draw_circle_filled (self.enemy_x, VIŠINA // 2, 20, arcade.color. RDEČA)
če self.game_over:
self.ui_manager.draw()

defnadgradnja(sam, delta_time):
self.nemy_x += 0.5
če self.enemy_x >= WIDTH:
self.show_game_over_screen()
self.game_over = Prav
če self.game_over:
self.ui_manager.enable()
drugače:
self.ui_manager.disable()

defna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
self.player_x -= PLAYER_SPEED
elif ključ == arcade.key. PRAV:
self.player_x += PLAYER_SPEED

defshow_game_over_screen(sebe):
sporočilo_polje = UIMessageBox(
širina=400,
višina=200,
besedilo_sporočila="Konec igre!"
)
self.ui_manager.add (message_box)

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

Spodaj je rezultat:

Dodajanje gumbov

Zdaj pa izboljšajte zaslon za konec igre z dodajanjem gumbov za ponovni zagon igre ali izhod. To lahko dosežete z uporabo gumbi parameter od UIMessageBox in zagotavljanje funkcije povratnega klica za obdelavo klikov gumbov.

Ustvari novo datoteko z imenom gumbi.py in dodajte kodo s spodnjimi posodobitvami:

defshow_game_over_screen(sebe):
sporočilo_polje = UIMessageBox(
širina=400,
višina=200,
besedilo_sporočila="Konec igre!",
gumbi=("Ponovni zagon", "Izhod"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (message_box)

defon_game_over_button_click(self, button_text):
če gumb_besedilo == "Ponovni zagon":
self.restart_game()
elif gumb_besedilo == "Izhod":
arcade.close_window()

defrestart_game(sebe):
self.game_over = False
self.enemy_x = WIDTH - 50
self.ui_manager.clear()

Spodaj je rezultat:

V show_game_over_screen metoda, dodajte dva gumba, Ponovni zagon in Izhod, do UIMessageBox tako da jih navedete v gumbi parameter. Zagotovite tudi funkcijo povratnega klica, on_game_over_button_click, za obdelavo klikov gumbov. Znotraj funkcije povratnega klica preverite, kateri gumb je bil kliknjen, in izvedite ustrezno dejanje.

Orodja GUI podjetja Arcade ponujajo vrsto dodatnih funkcij, ki lahko dodatno izboljšajo funkcionalnost in interaktivnost vaših igralnih menijev in dizajnov uporabniškega vmesnika. Tukaj je nekaj primerov:

UIDraggableMixin

The UIDraggableMixin razred se lahko uporabi za omogočanje vlečenja katerega koli gradnika uporabniškega vmesnika. Zagotavlja funkcionalnost za obvladovanje vedenja vlečenja, kar uporabnikom omogoča premikanje elementov uporabniškega vmesnika po zaslonu. Združevanje tega miksa z drugimi gradniki uporabniškega vmesnika vam omogoča, da v svoji igri ustvarite okna ali plošče, ki jih je mogoče povleči.

UIMouseFilterMixin

The UIMouseFilterMixin razred vam omogoča, da ujamete vse dogodke miške, ki se zgodijo v določenem gradniku. To je še posebej uporabno za gradnike, podobne oknom, kjer želite preprečiti, da bi dogodki miške vplivali na osnovne elemente uporabniškega vmesnika. S filtriranjem dogodkov miške lahko neodvisno nadzorujete interakcijo znotraj gradnika.

UIWindowLikeMixin

The UIWindowLikeMixin razred gradniku omogoča obnašanje, podobno oknu. Obravnava vse dogodke miške, ki se zgodijo znotraj meja gradnika, in omogoča vlečenje gradnika. To je idealno za ustvarjanje vlečenih oken ali plošč, s katerimi lahko uporabniki komunicirajo v vaši igri.

Površina

The Površina razred predstavlja medpomnilnik za risanje elementov uporabniškega vmesnika. Abstrahira risbo na medpomnilniku in ponuja metode za aktiviranje, brisanje in risanje medpomnilnika na zaslonu. Ta razred lahko uporabite interno za upodabljanje pripomočkov ali elementov uporabniškega vmesnika po meri v vaši igri.

Te dodatne funkcije ponujajo priložnosti za ustvarjanje bolj interaktivnih in dinamičnih uporabniških izkušenj v vaših igrah. Eksperimentirajte s temi funkcijami, da dodate edinstveno funkcionalnost in poskrbite, da bodo vaši igralni meniji in dizajn uporabniškega vmesnika izstopali.

Najboljše prakse za vključitev GUI

Pri vključevanju orodij GUI v vaše igre z uporabo Arcade je pomembno, da upoštevate nekaj najboljših praks, da zagotovite nemoteno in brezhibno uporabniško izkušnjo. Upoštevajte nekaj nasvetov:

Načrt in prototip

Preden se potopite v implementacijo, porabite čas za načrtovanje in izdelavo prototipov vaših igralnih menijev in elementov uporabniškega vmesnika. Upoštevajte postavitev, funkcionalnost in vizualno estetiko, da zagotovite skladen in uporabniku prijazen dizajn.

Naj bo dosleden

Ohranite dosleden vizualni slog in postavitev v menijih iger in elementih uporabniškega vmesnika. To uporabnikom pomaga lažje krmariti skozi vašo igro in zagotavlja povezano izkušnjo.

Odzivno oblikovanje

Oblikujte svoje elemente uporabniškega vmesnika tako, da bodo odzivni in prilagodljivi različnim velikostim in ločljivostim zaslona. To zagotavlja, da vaši igralni meniji in uporabniški vmesnik ostanejo uporabni in vizualno privlačni na različnih napravah.

Učinkovito ravnanje z dogodki

Učinkovito obravnavajte dogodke uporabniškega vnosa, da zagotovite odzivne in gladke interakcije. Izogibajte se nepotrebnim izračunom ali obdelavi dogodkov, ki bi lahko povzročili zakasnitev ali zamudo v odzivnosti uporabniškega vmesnika.

Povratne informacije uporabnikov

Zagotovite jasne in takojšnje povratne informacije uporabnikom, ko uporabljajo vaše igralne menije in elemente uporabniškega vmesnika. Vizualni znaki, animacije in zvočne povratne informacije v igrah lahko izboljšajo uporabniško izkušnjo in naredite igro bolj uglajeno.

Z upoštevanjem teh najboljših praks lahko ustvarite menije za igre in dizajne uporabniškega vmesnika, ki so intuitivni in vizualno privlačni.

Povečajte angažiranost uporabnikov z vizualno privlačnim uporabniškim vmesnikom

Dodajanje elementov GUI v vašo igro ne samo izboljša uporabnost, ampak tudi poveča vizualno privlačnost in splošno angažiranost igralcev. Ne glede na to, ali ustvarjate začetni meni, igro nad zaslonom ali kateri koli drug element uporabniškega vmesnika, orodja GUI podjetja Arcade ponujajo vrsto funkcij in funkcij za izboljšanje uporabniške izkušnje vaše igre.