Iemācieties bez pūlēm izveidot spēļu izvēlnes un izstrādāt lietotāja saskarnes, izmantojot Arcade GUI rīkus.
Spēļu izvēlnēm un lietotāja saskarnēm (UI) ir izšķiroša nozīme, lai uzlabotu lietotāja pieredzi un spēles iesaistīšanos. Arcade, populāra Python bibliotēka spēļu izstrādei, nodrošina jaudīgus GUI (grafiskā lietotāja interfeisa) rīkus, kas atvieglo spēļu izvēlņu un lietotāja interfeisa elementu noformēšanu un ieviešanu.
Izveidojiet vienkāršu spēli
Pirms sākat, pārliecinieties, ka jums ir pip ir instalēts jūsu ierīcē. Izmantojiet šo komandu, lai instalētu arkādes bibliotēku:
pip instalēšanas arkāde
Sāciet, izveidojot vienkāršu spēli, izmantojot Arcade.
Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.
Šajā spēlē būs spēlētāja objekts, kas var pārvietoties pa kreisi un pa labi, un ienaidnieka objekts. Šeit ir spēles kods:
imports arkāde
PLATUMS = 800
AUGSTUMS = 600
PLAYER_SPEED = 25klasēSpēle(pasāža. logs):
def__tajā__(pats):
super().__init__(WIDTH, HEIGHT, "Vienkārša spēle")
self.player_x = PLATUMS // 2
self.enemy_x = PLATUMS - 50
self.game_over = Nepatiesidefuzstādīt(pats):
arcade.set_background_color (arcade.color. BALTS)defon_draw(pats):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, AUGSTUMS // 2, 20, arcade.color. ZILS)
arcade.draw_circle_filled (self.enemy_x, AUGSTUMS // 2, 20, arcade.color. SARKANS)defAtjaunināt(self, delta_time):
self.ienaidnieks_x += 0.5
ja self.enemy_x >= PLATUMS:
self.game_over = Taisnībadefon_key_press(pašs, atslēga, modifikatori):
ja taustiņš == arcade.key. PA kreisi:
self.player_x -= PLAYER_SPEED
elifs taustiņš == arcade.key. PA LABI:
self.player_x += PLAYER_SPEED
spēle = spēle ()
game.setup()
arcade.run()
Spēles pievienošana ekrānā
Pievienojiet spēli ekrānam, kurā tiek parādīts ziņojums, kad ienaidnieks pārvietojas ārpus spēles loga. Izmantojiet arkāde.gui. UIMager un arkāde.gui. UIMessageBox klasēm, lai to sasniegtu.
Izveidojiet piemēru UIMager un iespējojiet to. Iekšpusē on_draw metodi, pārbaudiet, vai spēle beigusies karogs ir iestatīts, un, ja tā, uzzīmējiet lietotāja interfeisa pārvaldnieku. The show_game_over_screen metode rada a UIMessageBox ar ziņojumu par spēles pabeigšanu un pievieno to lietotāja interfeisa pārvaldniekam. Varat arī iespējot un atspējot lietotāja interfeisa pārvaldnieku Atjaunināt metode, kuras pamatā ir spēles stāvoklis.
Izveidojiet jaunu failu ar nosaukumu spēle-over.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:
imports arkāde
no arkāde.gui imports UIMager, UIMessageBoxPLATUMS = 800
AUGSTUMS = 600
PLAYER_SPEED = 25klasēSpēle(pasāža. logs):
def__tajā__(pats):
super().__init__(WIDTH, HEIGHT, "Vienkārša spēle")
self.player_x = PLATUMS // 2
self.enemy_x = PLATUMS - 50
self.ui_manager = UIMager()
self.game_over = Nepatiesidefuzstādīt(pats):
arcade.set_background_color (arcade.color. BALTS)
self.ui_manager.enable() # Iespējojiet lietotāja interfeisa pārvaldniekudefon_draw(pats):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, AUGSTUMS // 2, 20, arcade.color. ZILS)
arcade.draw_circle_filled (self.enemy_x, AUGSTUMS // 2, 20, arcade.color. SARKANS)
ja self.game_over:
self.ui_manager.draw()defAtjaunināt(self, delta_time):
self.ienaidnieks_x += 0.5
ja self.enemy_x >= PLATUMS:
self.show_game_over_screen()
self.game_over = Taisnība
ja self.game_over:
self.ui_manager.enable()
cits:
self.ui_manager.disable()defon_key_press(pašs, atslēga, modifikatori):
ja taustiņš == arcade.key. PA kreisi:
self.player_x -= PLAYER_SPEED
elifs taustiņš == arcade.key. PA LABI:
self.player_x += PLAYER_SPEEDdefshow_game_over_screen(pats):
message_box = UIMessageBox(
platums=400,
augstums =200,
ziņojuma_teksts="Spēle beigusies!"
)
self.ui_manager.add (ziņojumu kastīte)
spēle = spēle ()
game.setup()
arcade.run()
Zemāk ir izvade:
Pogu pievienošana
Tagad uzlabojiet spēli ekrānā, pievienojot pogas, lai restartētu spēli vai izietu. To var paveikt, izmantojot pogas parametrs UIMessageBox un nodrošina atzvanīšanas funkciju, lai apstrādātu pogu klikšķus.
Izveidojiet jaunu failu ar nosaukumu buttons.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:
defshow_game_over_screen(pats):
message_box = UIMessageBox(
platums=400,
augstums =200,
ziņojuma_teksts="Spēle beigusies!",
pogas=("Restartēt", "Izeja"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (ziņojumu kastīte)defon_game_over_button_click(pats, pogas_teksts):
ja pogas_teksts == "Restartēt":
self.restart_game()
elifs pogas_teksts == "Izeja":
arcade.close_window()
defrestart_game(pats):
self.game_over = Nepatiesi
self.enemy_x = PLATUMS - 50
self.ui_manager.clear()
Zemāk ir izvade:
Iekš show_game_over_screen metodi, pievienojiet divas pogas, Restartēt un Izeja, uz UIMessageBox norādot tos pogas parametrs. Nodrošiniet arī atzvanīšanas funkciju, on_game_over_button_click, lai apstrādātu pogu klikšķus. Atzvanīšanas funkcijā pārbaudiet, kura poga tika noklikšķināta, un veiciet atbilstošo darbību.
Arcade GUI rīki piedāvā dažādas papildu funkcijas, kas var vēl vairāk uzlabot jūsu spēļu izvēlņu un lietotāja interfeisa dizaina funkcionalitāti un interaktivitāti. Šeit ir daži piemēri:
UIDraggableMixin
The UIDraggableMixin klasi var izmantot, lai padarītu jebkuru lietotāja interfeisa logrīku velkamu. Tas nodrošina funkcionalitāti, lai apstrādātu vilkšanas darbību, ļaujot lietotājiem pārvietot lietotāja interfeisa elementus pa ekrānu. Apvienojot šo kombināciju ar citiem lietotāja interfeisa logrīkiem, varat izveidot savā spēlē velkamus logus vai paneļus.
UIMouseFilterMixin
The UIMouseFilterMixin klase ļauj noķert visus peles notikumus, kas notiek noteiktā logrīkā. Tas ir īpaši noderīgi logiem līdzīgiem logrīkiem, kuros vēlaties novērst, ka peles notikumi ietekmē pamatā esošos lietotāja interfeisa elementus. Filtrējot peles notikumus, jūs varat neatkarīgi kontrolēt logrīka mijiedarbību.
UIWindowLikeMixin
The UIWindowLikeMixin klase nodrošina logrīkam līdzīgu darbību. Tas apstrādā visus peles notikumus, kas notiek logrīka robežās, un ļauj logrīku vilkt. Tas ir ideāli piemērots, lai izveidotu velkamus logus vai paneļus, ar kuriem lietotāji var mijiedarboties jūsu spēlē.
Virsma
The Virsma klase ir buferis lietotāja interfeisa elementu zīmēšanai. Tas abstrahē zīmējumu buferī un nodrošina metodes bufera aktivizēšanai, notīrīšanai un uzzīmēšanai uz ekrāna. Varat izmantot šo klasi iekšēji, lai savā spēlē renderētu logrīkus vai pielāgotus lietotāja interfeisa elementus.
Šīs papildu funkcijas piedāvā iespējas radīt interaktīvāku un dinamiskāku lietotāja pieredzi jūsu spēlēs. Eksperimentējiet ar šīm funkcijām, lai pievienotu unikālu funkcionalitāti un izceltu savas spēļu izvēlnes un lietotāja interfeisa dizainu.
GUI iekļaušanas paraugprakse
Iekļaujot GUI rīkus savās spēlēs, izmantojot Arcade, ir svarīgi ievērot dažas labākās prakses, lai nodrošinātu vienmērīgu un nevainojamu lietotāja pieredzi. Šeit ir daži padomi, kas jāpatur prātā:
Plāns un prototips
Pirms iedziļināties ieviešanā, veltiet laiku spēļu izvēlņu un lietotāja interfeisa elementu plānošanai un prototipēšanai. Apsveriet izkārtojumu, funkcionalitāti un vizuālo estētiku, lai nodrošinātu saskaņotu un lietotājam draudzīgu dizainu.
Saglabājiet to konsekventi
Saglabājiet konsekventu vizuālo stilu un izkārtojumu spēles izvēlnēs un lietotāja interfeisa elementos. Tas palīdz lietotājiem vieglāk orientēties jūsu spēlē un nodrošina vienotu pieredzi.
Atsaucīgs dizains
Izveidojiet savus lietotāja interfeisa elementus tā, lai tie būtu atsaucīgi un pielāgojami dažādiem ekrāna izmēriem un izšķirtspējai. Tas nodrošina, ka jūsu spēļu izvēlnes un lietotāja interfeiss joprojām ir lietojami un vizuāli pievilcīgi dažādās ierīcēs.
Efektīva notikumu apstrāde
Efektīvi apstrādājiet lietotāja ievadītos notikumus, lai nodrošinātu atsaucīgu un vienmērīgu mijiedarbību. Izvairieties no nevajadzīgiem aprēķiniem vai notikumu apstrādes, kas var izraisīt lietotāja interfeisa reakcijas kavēšanos vai aizkavēšanos.
Lietotāju atsauksmes
Sniedziet lietotājiem skaidru un tūlītēju atgriezenisko saiti, kad viņi mijiedarbojas ar jūsu spēļu izvēlnēm un lietotāja interfeisa elementiem. Vizuālie norādījumi, animācijas un audio atsauksmes spēlēs var uzlabot lietotāja pieredzi un padariet spēli noslīpētāku.
Ievērojot šo paraugpraksi, varat izveidot intuitīvus un vizuāli pievilcīgus spēļu izvēlnes un lietotāja interfeisa dizainu.
Palieliniet lietotāju iesaisti, izmantojot vizuāli pievilcīgu lietotāja interfeisu
GUI elementu pievienošana spēlei ne tikai uzlabo lietojamību, bet arī uzlabo spēlētāju vizuālo pievilcību un vispārējo iesaisti. Neatkarīgi no tā, vai veidojat sākuma izvēlni, spēli ekrānā vai jebkuru citu lietotāja interfeisa elementu, Arcade GUI rīki piedāvā virkni funkciju un funkcionalitātes, lai uzlabotu spēles lietotāja pieredzi.