Õppige Arcade'i GUI-tööriistade abil hõlpsalt mängumenüüd looma ja kasutajaliideseid kujundama.
Mängumenüüd ja kasutajaliidesed (UI) mängivad kasutajakogemuse ja mängu kaasatuse parandamisel otsustavat rolli. Arcade, populaarne Pythoni teek mängude arendamiseks, pakub võimsaid GUI (graafiline kasutajaliides) tööriistu, mis muudavad mängumenüüde ja kasutajaliidese elementide kujundamise ja rakendamise lihtsaks.
Looge lihtne mäng
Enne alustamist veenduge, et teil on pip teie seadmesse installitud. Kasutage seda käsku arkaadteegi installimiseks:
pip install arkaad
Alustage lihtsa mängu loomisega Arcade abil.
Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.
Selles mängus on mängijaobjekt, mis saab liikuda vasakule ja paremale, ja vaenlase objekt. Siin on mängu kood:
importida arkaad
LAIUS = 800
KÕRGUS = 600
PLAYER_SPEED = 25klassMäng(arkaad. aken):
def__selles__(ise):
super().__init__(WIDTH, HEIGHT, "Lihtne mäng")
self.player_x = LAIUS // 2
self.enemy_x = LAIUS – 50
self.game_over = Valedefseadistamine(ise):
arcade.set_background_color (arcade.color. VALGE)defon_draw(ise):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. SININE)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. PUNANE)defvärskendada(ise, delta_aeg):
ise.vaenlane_x += 0.5
kui self.enemy_x >= LAIUS:
self.game_over = Tõsidefon_key_press(ise, võti, muutjad):
kui võti == arcade.key. VASAKULE:
self.player_x -= PLAYER_SPEED
elif võti == arcade.key. PAREMALE:
self.player_x += PLAYER_SPEED
mäng = mäng ()
game.setup()
arcade.run()
Mängu lisamine üle ekraani
Lisage ekraanile mäng, mis kuvab teate, kui vaenlane liigub mänguaknast välja. Kasuta arcade.gui. UIMager ja arcade.gui. UIMessageBox klassid selle saavutamiseks.
Loo eksemplar UIMager ja lubage see. Sees on_draw meetodit, kontrollige, kas mäng läbi lipp on seatud ja kui jah, siis joonistage kasutajaliidese haldur. The show_game_over_screen meetod loob a UIMessageBox mängu üle sõnumiga ja lisab selle kasutajaliidese haldurisse. Samuti saate kasutajaliidese halduri lubada ja keelata jaotises värskendada meetod, mis põhineb mängu olekus.
Looge uus fail nimega game-over.py ja lisage kood koos allolevate värskendustega:
importida arkaad
alates arcade.gui importida UIManager, UIMessageBoxLAIUS = 800
KÕRGUS = 600
PLAYER_SPEED = 25klassMäng(arkaad. aken):
def__selles__(ise):
super().__init__(WIDTH, HEIGHT, "Lihtne mäng")
self.player_x = LAIUS // 2
self.enemy_x = LAIUS – 50
self.ui_manager = UIManager()
self.game_over = Valedefseadistamine(ise):
arcade.set_background_color (arcade.color. VALGE)
self.ui_manager.enable() # Lubage kasutajaliidese haldurdefon_draw(ise):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. SININE)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. PUNANE)
kui self.game_over:
self.ui_manager.draw()defvärskendada(ise, delta_aeg):
ise.vaenlane_x += 0.5
kui self.enemy_x >= LAIUS:
self.show_game_over_screen()
self.game_over = Tõsi
kui self.game_over:
self.ui_manager.enable()
muidu:
self.ui_manager.disable()defon_key_press(ise, võti, muutjad):
kui võti == arcade.key. VASAKULE:
self.player_x -= PLAYER_SPEED
elif võti == arcade.key. PAREMALE:
self.player_x += PLAYER_SPEEDdefshow_game_over_screen(ise):
message_box = UIMessageBox(
laius=400,
kõrgus =200,
sõnumi_tekst="Mäng läbi!"
)
self.ui_manager.add (message_box)
mäng = mäng ()
game.setup()
arcade.run()
Allpool on väljund:
Nuppude lisamine
Nüüd täiustage mängu ekraanil, lisades nupud mängu taaskäivitamiseks või väljumiseks. Saate seda teha, kasutades nupud parameeter UIMessageBox ja tagasihelistamisfunktsiooni pakkumine nupuklõpsude käsitlemiseks.
Looge uus fail nimega nupud.py ja lisage kood koos allolevate värskendustega:
defshow_game_over_screen(ise):
message_box = UIMessageBox(
laius=400,
kõrgus =200,
sõnumi_tekst="Mäng läbi!",
nupud=("Taaskäivita", "Välju"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (message_box)defon_game_over_button_click(ise, nupu_tekst):
kui nupu_tekst == "Taaskäivita":
self.restart_game()
elif nupu_tekst == "Välju":
arcade.close_window()
deftaaskäivitage_mäng(ise):
self.game_over = Vale
self.enemy_x = LAIUS – 50
self.ui_manager.clear()
Allpool on väljund:
Aastal show_game_over_screen meetod, lisage kaks nuppu, Taaskäivita ja Välju, juurde UIMessageBox täpsustades need jaotises nupud parameeter. Pakkuge ka tagasihelistamisfunktsiooni, on_game_over_button_click, nupuklõpsude käsitlemiseks. Kontrollige tagasihelistamisfunktsioonis, millist nuppu klõpsati, ja tehke vastav toiming.
Arcade'i GUI-tööriistad pakuvad mitmesuguseid lisafunktsioone, mis võivad teie mängumenüüde ja kasutajaliidese kujunduse funktsionaalsust ja interaktiivsust veelgi täiustada. Siin on mõned näited.
UIDraggableMixin
The UIDraggableMixin klassi saab kasutada mis tahes kasutajaliidese vidina lohistamiseks. See pakub funktsioone lohistamiskäitumise käsitlemiseks, võimaldades kasutajatel kasutajaliidese elemente ekraanil liigutada. Selle segamise kombineerimine teiste kasutajaliidese vidinatega võimaldab teil luua mängus lohistatavaid aknaid või paneele.
UIMouseFilterMixin
The UIMouseFilterMixin klass võimaldab teil tabada kõiki hiiresündmusi, mis konkreetse vidina sees toimuvad. See on eriti kasulik aknalaadsete vidinate puhul, kus soovite vältida hiiresündmuste mõjutamist aluseks olevaid kasutajaliidese elemente. Filtreerides hiire sündmusi, saate vidina sisest interaktsiooni iseseisvalt juhtida.
UIWindowLikeMixin
The UIWindowLikeMixin klass pakub vidinale aknalaadset käitumist. See käsitleb kõiki hiiresündmusi, mis toimuvad vidina piirides, ja võimaldab vidinat lohistada. See sobib ideaalselt lohistatavate akende või paneelide loomiseks, millega kasutajad saavad teie mängus suhelda.
Pind
The Pind klass esindab puhvrit kasutajaliidese elementide joonistamiseks. See abstraheerib puhvris oleva joonise ja pakub meetodeid puhvri aktiveerimiseks, tühjendamiseks ja ekraanile joonistamiseks. Saate seda klassi sisemiselt kasutada oma mängus vidinate või kohandatud kasutajaliidese elementide renderdamiseks.
Need lisafunktsioonid pakuvad võimalusi interaktiivsemate ja dünaamilisemate kasutuskogemuste loomiseks teie mängudes. Katsetage neid funktsioone, et lisada unikaalseid funktsioone ning muuta oma mängumenüüd ja kasutajaliidese kujundused silma paista.
GUI kaasamise parimad tavad
GUI-tööriistade kaasamisel oma mängudesse Arcade'i abil on oluline järgida mõningaid parimaid tavasid, et tagada sujuv ja sujuv kasutuskogemus. Siin on mõned näpunäited, mida meeles pidada.
Plaan ja prototüüp
Enne juurutusse sukeldumist kulutage aega oma mängumenüüde ja kasutajaliidese elementide kavandamisele ja prototüüpimisele. Kaaluge paigutust, funktsionaalsust ja visuaalset esteetikat, et tagada ühtne ja kasutajasõbralik disain.
Hoidke see järjepidev
Säilitage oma mängumenüüdes ja kasutajaliidese elementides ühtne visuaalne stiil ja paigutus. See aitab kasutajatel teie mängus hõlpsamini navigeerida ja pakub ühtset kogemust.
Vastupidav disain
Kujundage oma kasutajaliidese elemendid nii, et need oleksid reageerivad ja kohandatavad erinevate ekraanisuuruste ja eraldusvõimetega. See tagab, et teie mängumenüüd ja kasutajaliides jäävad erinevates seadmetes kasutatavaks ja visuaalselt atraktiivseks.
Tõhus sündmuste käsitlemine
Käsitsege kasutaja sisestussündmusi tõhusalt, et tagada reageeriv ja sujuv suhtlus. Vältige tarbetuid arvutusi või sündmuste töötlemist, mis võivad kasutajaliidese reageerimisvõimesse viivitust või viivitusi põhjustada.
Kasutajate tagasiside
Andke kasutajatele selget ja kohest tagasisidet, kui nad teie mängumenüüde ja kasutajaliidese elementidega suhtlevad. Visuaalsed vihjed, animatsioonid ja Mängude heli tagasiside võib kasutajakogemust parandada ja muuta mäng lihvitavamaks.
Neid parimaid tavasid järgides saate luua mängumenüüd ja kasutajaliidese kujundusi, mis on intuitiivsed ja visuaalselt atraktiivsed.
Suurendage kasutajate seotust visuaalselt ahvatleva kasutajaliidese abil
GUI elementide lisamine mängule mitte ainult ei paranda kasutatavust, vaid suurendab ka visuaalset atraktiivsust ja mängijate üldist kaasatust. Olenemata sellest, kas loote käivitusmenüüd, mängu üle ekraani või mis tahes muud kasutajaliidese elementi, pakuvad Arcade'i GUI tööriistad hulga funktsioone ja funktsioone, mis parandavad teie mängu kasutuskogemust.