Išmokite be vargo kurti žaidimų meniu ir kurti vartotojo sąsajas naudodami „Arcade“ GUI įrankius.
Žaidimų meniu ir vartotojo sąsajos (UI) vaidina labai svarbų vaidmenį gerinant vartotojo patirtį ir žaidimo įsitraukimą. Arcade, populiari žaidimų kūrimo Python biblioteka, teikia galingus GUI (grafinės vartotojo sąsajos) įrankius, kurie palengvina žaidimų meniu ir vartotojo sąsajos elementų kūrimą ir įgyvendinimą.
Sukurkite paprastą žaidimą
Prieš pradėdami įsitikinkite, kad turite pip įdiegtas jūsų įrenginyje. Norėdami įdiegti arkadų biblioteką, naudokite šią komandą:
pip diegimo pasažas
Pradėkite kurdami paprastą žaidimą naudodami „Arcade“.
Šiame straipsnyje naudojamas kodas pateikiamas čia GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.
Šiame žaidime bus žaidėjo objektas, galintis judėti į kairę ir dešinę, ir priešo objektas. Štai žaidimo kodas:
importuoti arkada
PLOTIS = 800
AUKŠTIS = 600
PLAYER_SPEED = 25klasėŽaidimas(arkada. Langas):
"Paprastas žaidimas")
def__init__(savarankiškai):
super().__init__(WIDTH, HEIGHT,
self.player_x = PLOTIS // 2
self.enemy_x = PLOTIS – 50
self.game_over = Netiesadefsąranka(savarankiškai):
arcade.set_background_color (arcade.color. BALTAS)defon_draw(savarankiškai):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, AUKŠTIS // 2, 20, arcade.color. MĖLYNA)
arcade.draw_circle_filled (self.enemy_x, AUKŠTIS // 2, 20, arcade.color. RAUDONA)defatnaujinti(savaime, delta_laikas):
save.priešas_x += 0.5
jeigu self.enemy_x >= PLOTIS:
self.game_over = Tiesadefyra_key_press(savaime, raktas, modifikatoriai):
jeigu raktas == arcade.key. KAIRĖ:
self.player_x -= PLAYER_SPEED
elifas raktas == arcade.key. DEŠINĖJE:
self.player_x += PLAYER_SPEED
žaidimas = žaidimas ()
game.setup()
arcade.run()
Žaidimo pridėjimas per ekraną
Pridėkite žaidimą ekrane, kuriame bus rodomas pranešimas, kai priešas juda už žaidimo lango. Naudoti arcade.gui. UIMager ir arcade.gui. UIMessageBox klases, kad tai pasiektų.
Sukurkite egzempliorių UIMager ir įjungti. Viduje on_draw metodą, patikrinkite, ar žaidimas baigtas vėliavėlė yra nustatyta, o jei taip, nupieškite vartotojo sąsajos tvarkyklę. The show_game_over_screen metodas sukuria a UIMessageBox su žaidimo pabaigos pranešimu ir prideda jį prie vartotojo sąsajos tvarkyklės. Taip pat galite įjungti ir išjungti vartotojo sąsajos tvarkyklę atnaujinti metodas, pagrįstas žaidimo būsena.
Sukurkite naują failą pavadinimu game-over.py ir pridėkite kodą su toliau pateiktais atnaujinimais:
importuoti arkada
iš arcade.gui importuoti UIMager, UIMessageBoxPLOTIS = 800
AUKŠTIS = 600
PLAYER_SPEED = 25klasėŽaidimas(arkada. Langas):
def__init__(savarankiškai):
super().__init__(WIDTH, HEIGHT, "Paprastas žaidimas")
self.player_x = PLOTIS // 2
self.enemy_x = PLOTIS – 50
self.ui_manager = UIMager()
self.game_over = Netiesadefsąranka(savarankiškai):
arcade.set_background_color (arcade.color. BALTAS)
self.ui_manager.enable() # Įgalinkite vartotojo sąsajos tvarkyklędefon_draw(savarankiškai):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, AUKŠTIS // 2, 20, arcade.color. MĖLYNA)
arcade.draw_circle_filled (self.enemy_x, AUKŠTIS // 2, 20, arcade.color. RAUDONA)
jeigu self.game_over:
self.ui_manager.draw()defatnaujinti(savaime, delta_laikas):
save.priešas_x += 0.5
jeigu self.enemy_x >= PLOTIS:
self.show_game_over_screen()
self.game_over = Tiesa
jeigu self.game_over:
self.ui_manager.enable()
Kitas:
self.ui_manager.disable()defyra_key_press(savaime, raktas, modifikatoriai):
jeigu raktas == arcade.key. KAIRĖ:
self.player_x -= PLAYER_SPEED
elifas raktas == arcade.key. DEŠINĖJE:
self.player_x += PLAYER_SPEEDdefshow_game_over_screen(savarankiškai):
message_box = UIMessageBox(
plotis =400,
aukštis =200,
žinutės_tekstas="Žaidimas baigtas!"
)
self.ui_manager.add (message_box)
žaidimas = žaidimas ()
game.setup()
arcade.run()
Žemiau yra išvestis:
Mygtukų pridėjimas
Dabar patobulinkite žaidimą ekrane pridėdami mygtukus, kad paleistumėte žaidimą iš naujo arba išeitumėte. Tai galite padaryti naudodami mygtukai parametras UIMessageBox ir suteikiant atgalinio ryšio funkciją, skirtą mygtukų paspaudimams valdyti.
Sukurkite naują failą pavadinimu mygtukai.py ir pridėkite kodą su toliau pateiktais atnaujinimais:
defshow_game_over_screen(savarankiškai):
message_box = UIMessageBox(
plotis =400,
aukštis =200,
žinutės_tekstas="Žaidimas baigtas!",
mygtukai =("Perkrauti", "Išeiti"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (message_box)defon_game_over_button_click(savaime, mygtuko_tekstas):
jeigu mygtuko_tekstas == "Perkrauti":
self.restart_game()
elifas mygtuko_tekstas == "Išeiti":
arcade.close_window()
defrestart_game(savarankiškai):
self.game_over = Netiesa
self.enemy_x = PLOTIS – 50
self.ui_manager.clear()
Žemiau yra išvestis:
Viduje show_game_over_screen metodą, pridėkite du mygtukus, Perkrauti ir Išeiti, į UIMessageBox nurodydami juos mygtukai parametras. Taip pat suteikite atgalinio skambučio funkciją, on_game_over_button_click, norėdami valdyti mygtukų paspaudimus. Atgalinio skambinimo funkcijoje patikrinkite, kuris mygtukas buvo paspaustas, ir atlikite atitinkamą veiksmą.
„Arcade“ GUI įrankiai siūlo daugybę papildomų funkcijų, kurios gali dar labiau pagerinti žaidimų meniu ir vartotojo sąsajos funkcionalumą bei interaktyvumą. Štai keli pavyzdžiai:
UIDraggableMixin
The UIDraggableMixin klasę galima naudoti, kad bet kurį vartotojo sąsajos valdiklį būtų galima vilkti. Tai suteikia galimybę valdyti vilkimo veiksmus, leidžiančius vartotojams perkelti vartotojo sąsajos elementus ekrane. Sujungus šį derinį su kitais vartotojo sąsajos valdikliais, žaidime galite sukurti tempiamus langus ar skydelius.
UIMouseFilterMixin
The UIMouseFilterMixin klasė leidžia užfiksuoti visus pelės įvykius, vykstančius konkrečiame valdiklyje. Tai ypač naudinga naudojant į langą panašius valdiklius, kuriuose norite neleisti, kad pelės įvykiai paveiktų pagrindinius vartotojo sąsajos elementus. Filtruodami pelės įvykius galite savarankiškai valdyti valdiklio sąveiką.
UIWindowLikeMixin
The UIWindowLikeMixin klasė valdikliui suteikia langą primenantį elgesį. Jis tvarko visus pelės įvykius, vykstančius valdiklio ribose, ir leidžia valdiklį vilkti. Tai idealiai tinka kuriant tempiamus langus ar skydelius, su kuriais vartotojai gali bendrauti žaidime.
Paviršius
The Paviršius klasė yra buferis UI elementams piešti. Jis abstrahuoja piešinį buferyje ir pateikia būdus, kaip suaktyvinti, išvalyti ir nupiešti buferį ekrane. Galite naudoti šią klasę viduje, norėdami pateikti valdiklius arba tinkintus vartotojo sąsajos elementus savo žaidime.
Šios papildomos funkcijos suteikia galimybę sukurti interaktyvesnę ir dinamiškesnę žaidimų patirtį. Eksperimentuokite su šiomis funkcijomis, kad pridėtumėte unikalių funkcijų ir išsiskirtumėte savo žaidimų meniu bei vartotojo sąsajos dizainą.
Geriausia GUI įtraukimo praktika
Įtraukiant GUI įrankius į žaidimus naudodami „Arcade“, svarbu vadovautis kai kuriomis geriausiomis praktikomis, kad būtų užtikrinta sklandi ir sklandi vartotojo patirtis. Štai keletas patarimų, kuriuos reikia atsiminti:
Planas ir prototipas
Prieš pasinerdami į diegimą, skirkite laiko planuoti ir kurti žaidimo meniu bei vartotojo sąsajos elementus. Apsvarstykite išdėstymą, funkcionalumą ir vizualinę estetiką, kad užtikrintumėte nuoseklų ir patogų dizainą.
Laikykite jį nuosekliai
Išlaikykite nuoseklų vaizdo stilių ir išdėstymą žaidimo meniu ir vartotojo sąsajos elementuose. Tai padeda vartotojams lengviau naršyti žaidime ir suteikia darnios patirties.
Reaktyvus dizainas
Sukurkite savo vartotojo sąsajos elementus taip, kad jie būtų jautrūs ir pritaikomi prie skirtingų ekranų dydžių ir skiriamųjų gebų. Tai užtikrina, kad jūsų žaidimų meniu ir vartotojo sąsaja išliks tinkami naudoti ir vizualiai patrauklūs įvairiuose įrenginiuose.
Efektyvus įvykių valdymas
Efektyviai tvarkykite vartotojo įvesties įvykius, kad užtikrintumėte atsakingą ir sklandžią sąveiką. Venkite nereikalingų skaičiavimų ar įvykių apdorojimo, kurie gali sukelti vartotojo sąsajos reagavimo delsą arba vėlavimą.
Vartotojų atsiliepimai
Pateikite aiškius ir tiesioginius atsiliepimus naudotojams, kai jie sąveikauja su žaidimo meniu ir vartotojo sąsajos elementais. Vaizdinės užuominos, animacijos ir garso atsiliepimai žaidimuose gali pagerinti vartotojo patirtį ir leis žaidimui jaustis tobulesniu.
Vadovaudamiesi šia geriausia praktika, galite sukurti intuityvius ir vizualiai patrauklius žaidimų meniu ir vartotojo sąsajos dizainą.
Padidinkite naudotojų įsitraukimą naudodami vizualiai patrauklią vartotojo sąsają
GUI elementų pridėjimas prie žaidimo ne tik pagerina naudojimą, bet ir padidina vizualinį patrauklumą bei bendrą žaidėjų įtraukimą. Nesvarbu, ar kuriate pradžios meniu, žaidimą per ekraną ar bet kurį kitą vartotojo sąsajos elementą, „Arcade“ GUI įrankiai siūlo daugybę funkcijų ir funkcijų, kad pagerintų jūsų žaidimo patirtį.