Învățați să creați meniuri de joc și să proiectați interfețe cu utilizatorul fără efort folosind instrumentele GUI de la Arcade.

Meniurile de joc și interfețele cu utilizatorul (UI) joacă un rol crucial în îmbunătățirea experienței utilizatorului și a angajării unui joc. Arcade, o bibliotecă populară Python pentru dezvoltarea jocurilor, oferă instrumente puternice GUI (Graphical User Interface) care facilitează proiectarea și implementarea meniurilor de joc și a elementelor UI.

Creați un joc simplu

Înainte de a începe, asigurați-vă că aveți pip instalat pe dispozitivul dvs. Utilizați această comandă pentru a instala biblioteca arcade:

pip install arcade

Începeți prin a crea un joc simplu folosind Arcade.

Codul folosit în acest articol este disponibil în acest articol Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.

Acest joc va prezenta un obiect jucător care se poate mișca la stânga și la dreapta și un obiect inamic. Iată codul jocului:

import arcadă

LĂȚime = 800
ÎNĂLȚIE = 600
PLAYER_SPEED = 25

instagram viewer

clasăJoc(arcadă. Fereastră):
def__init__(de sine):
super().__init__(LAȚIME, ÎNĂLȚIE, "Joc simplu")
self.player_x = WIDTH // 2
self.enemy_x = WIDTH - 50
self.game_over = Fals

defînființat(de sine):
arcade.set_background_color (arcade.color. ALB)

defon_draw(de sine):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. ALBASTRU)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. ROȘU)

defActualizați(self, delta_time):
sine.duşman_x += 0.5
dacă self.enemy_x >= WIDTH:
self.game_over = Adevărat

defon_key_press(sine, cheie, modificatori):
dacă cheie == arcade.key. STÂNGA:
self.player_x -= PLAYER_SPEED
elif cheie == arcade.key. DREAPTA:
self.player_x += PLAYER_SPEED

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

Adăugarea jocului peste ecran

Adăugați un joc peste ecran care afișează un mesaj atunci când inamicul se mișcă în afara ferestrei de joc. Folosește arcade.gui. UIManager și arcade.gui. UIMessageBox cursuri pentru a realiza acest lucru.

Creați o instanță de UIManager și activați-l. În interiorul on_draw metoda, verificați dacă joc încheiat steag este setat și, dacă da, desenați managerul UI. The show_game_over_screen metoda creează a UIMessageBox cu un mesaj de finalizare și îl adaugă la managerul UI. De asemenea, puteți activa și dezactiva managerul UI în Actualizați metoda bazata pe starea jocului.

Creați un fișier nou numit game-over.py și adăugați codul cu actualizările de mai jos:

import arcadă
din arcade.gui import UIManager, UIMessageBox

LĂȚime = 800
ÎNĂLȚIE = 600
PLAYER_SPEED = 25

clasăJoc(arcadă. Fereastră):
def__init__(de sine):
super().__init__(LAȚIME, ÎNĂLȚIE, "Joc simplu")
self.player_x = WIDTH // 2
self.enemy_x = WIDTH - 50
self.ui_manager = UIManager()
self.game_over = Fals

defînființat(de sine):
arcade.set_background_color (arcade.color. ALB)
self.ui_manager.enable() # Activați managerul UI

defon_draw(de sine):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. ALBASTRU)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. ROȘU)
dacă self.game_over:
self.ui_manager.draw()

defActualizați(self, delta_time):
sine.duşman_x += 0.5
dacă self.enemy_x >= WIDTH:
self.show_game_over_screen()
self.game_over = Adevărat
dacă self.game_over:
self.ui_manager.enable()
altfel:
self.ui_manager.disable()

defon_key_press(sine, cheie, modificatori):
dacă cheie == arcade.key. STÂNGA:
self.player_x -= PLAYER_SPEED
elif cheie == arcade.key. DREAPTA:
self.player_x += PLAYER_SPEED

defshow_game_over_screen(de sine):
mesaj_box = UIMessageBox(
latime=400,
inaltime=200,
mesaj_text="Joc încheiat!"
)
self.ui_manager.add (caseta de mesaje)

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

Mai jos este rezultatul:

Adăugarea de butoane

Acum, îmbunătățiți jocul pe ecran adăugând butoane pentru a reporni jocul sau a ieși. Puteți realiza acest lucru folosind butoane parametrul de UIMessageBox și oferind o funcție de apel invers pentru a gestiona clicurile pe butoane.

Creați un fișier nou numit butoane.py și adăugați codul cu actualizările de mai jos:

defshow_game_over_screen(de sine):
mesaj_box = UIMessageBox(
latime=400,
inaltime=200,
mesaj_text="Joc încheiat!",
butoane=("Repornire", "Ieșire"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (caseta de mesaje)

defon_game_over_button_click(self, button_text):
dacă button_text == "Repornire":
self.restart_game()
elif button_text == "Ieșire":
arcade.close_window()

defrestart_game(de sine):
self.game_over = Fals
self.enemy_x = WIDTH - 50
self.ui_manager.clear()

Mai jos este rezultatul:

În show_game_over_screen metoda, adăugați două butoane, Repornire și Ieșire, la UIMessageBox prin precizarea lor în butoane parametru. De asemenea, oferă o funcție de apel invers, on_game_over_button_click, pentru a gestiona clicurile pe butoane. În interiorul funcției de apel invers, verificați pe ce buton s-a făcut clic și efectuați acțiunea corespunzătoare.

Instrumentele GUI de la Arcade oferă o varietate de caracteristici suplimentare care pot îmbunătăți și mai mult funcționalitatea și interactivitatea meniurilor tale de joc și a designului UI. Iată câteva exemple:

UIDraggableMixin

The UIDraggableMixin clasa poate fi folosită pentru a face orice widget UI să fie trasabil. Oferă funcționalitate pentru a gestiona comportamentul de glisare, permițând utilizatorilor să mute elementele UI pe ecran. Combinarea acestei combinații cu alte widget-uri UI vă permite să creați ferestre sau panouri care pot fi glisate în joc.

UIMouseFilterMixin

The UIMouseFilterMixin clasa vă permite să capturați toate evenimentele mouse-ului care apar într-un anumit widget. Acest lucru este util în special pentru widget-uri asemănătoare ferestrelor în care doriți să preveniți ca evenimentele mouse-ului să afecteze elementele interfeței de utilizare subiacente. Prin filtrarea evenimentelor mouse-ului, puteți controla independent interacțiunea din cadrul widgetului.

UIWindowLikeMixin

The UIWindowLikeMixin clasa oferă un comportament asemănător ferestrei unui widget. Se ocupă de toate evenimentele mouse-ului care apar în limitele widget-ului și permite tragerea widget-ului. Acesta este ideal pentru a crea ferestre sau panouri care pot fi trasabile cu care utilizatorii să poată interacționa în jocul dvs.

Suprafaţă

The Suprafaţă clasa reprezintă un buffer pentru desenarea elementelor UI. Rezuma desenul de pe tampon și oferă metode pentru a activa, șterge și desena tamponul pe ecran. Puteți folosi această clasă intern pentru redarea widget-urilor sau a elementelor personalizate de UI în jocul dvs.

Aceste caracteristici suplimentare oferă oportunități de a crea experiențe de utilizator mai interactive și mai dinamice în jocurile tale. Experimentați cu aceste funcții pentru a adăuga funcționalități unice și pentru a face meniurile de joc și design-urile UI să iasă în evidență.

Cele mai bune practici pentru încorporarea GUI

Când încorporați instrumente GUI în jocurile dvs. folosind Arcade, este important să urmați câteva dintre cele mai bune practici pentru a asigura o experiență de utilizator fluidă și fără probleme. Iată câteva sfaturi de care trebuie să țineți cont:

Plan și prototip

Înainte de a te apuca de implementare, petreceți timp planificând și creând prototipuri meniurile de joc și elementele UI. Luați în considerare aspectul, funcționalitatea și estetica vizuală pentru a asigura un design coerent și ușor de utilizat.

Păstrează-l constant

Păstrați un stil vizual și un aspect coerent în meniurile de joc și elementele UI. Acest lucru îi ajută pe utilizatori să navigheze mai ușor prin jocul dvs. și oferă o experiență coerentă.

Design receptiv

Proiectați-vă elementele UI astfel încât să fie receptive și adaptabile la diferite dimensiuni și rezoluții ale ecranului. Acest lucru vă asigură că meniurile de joc și interfața de utilizare rămân utilizabile și atractive vizual pe diferite dispozitive.

Gestionare eficientă a evenimentelor

Gestionați eficient evenimentele introduse de utilizator pentru a asigura interacțiuni receptive și fluide. Evitați calculele inutile sau procesarea evenimentelor care ar putea introduce întârziere sau întârziere în răspunsul la interfața de utilizare.

Feedback utilizator

Oferiți feedback clar și imediat utilizatorilor atunci când interacționează cu meniurile de joc și elementele UI. Indici vizuale, animații și feedback-ul audio în jocuri poate îmbunătăți experiența utilizatorului și face jocul să se simtă mai șlefuit.

Urmând aceste bune practici, puteți crea meniuri de joc și modele de interfață de utilizator care sunt intuitive și atrăgătoare din punct de vedere vizual.

Creșteți implicarea utilizatorilor cu o interfață de utilizare atractivă din punct de vedere vizual

Adăugarea elementelor GUI în jocul tău nu numai că îmbunătățește utilizarea, ci și atractivitatea vizuală și implicarea generală a jucătorilor. Indiferent dacă creați un meniu de pornire, un joc peste ecran sau orice alt element de interfață de utilizare, instrumentele GUI de la Arcade oferă o gamă largă de caracteristici și funcționalități pentru a îmbunătăți experiența utilizatorului jocului dvs.