Opi luomaan pelivalikoita ja suunnittelemaan käyttöliittymiä vaivattomasti Arcaden GUI-työkalujen avulla.

Pelivalikot ja käyttöliittymät (UI) ovat ratkaisevassa roolissa pelin käyttökokemuksen ja sitoutumisen parantamisessa. Arcade, suosittu Python-kirjasto pelien kehittämiseen, tarjoaa tehokkaita GUI (Graphical User Interface) -työkaluja, joiden avulla on helppo suunnitella ja toteuttaa pelivalikoita ja käyttöliittymäelementtejä.

Luo yksinkertainen peli

Ennen kuin aloitat, varmista, että sinulla on pip asennettuna laitteellesi. Käytä tätä komentoa asentaaksesi arcade-kirjaston:

pip asennus arcade

Aloita luomalla yksinkertainen peli Arcadella.

Tässä artikkelissa käytetty koodi on saatavilla tässä GitHub-arkisto ja sen käyttö on ilmaista MIT-lisenssin alaisena.

Tässä pelissä on pelaajaobjekti, joka voi liikkua vasemmalle ja oikealle, ja vihollisobjekti. Tässä pelin koodi:

tuonti pelihalli

LEVEYS = 800
KORKEUS = 600
PLAYER_SPEED = 25

luokkaaPeli(pelihalli. Ikkuna):
def__sen sisällä__(itse):
super().__init__(WIDTH, HEIGHT,

"Yksinkertainen peli")
self.player_x = LEVEYS // 2
self.enemy_x = LEVEYS - 50
self.game_over = Väärä

defperustaa(itse):
arcade.set_background_color (arcade.color. VALKOINEN)

defon_draw(itse):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. SININEN)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. PUNAINEN)

defpäivittää(itse, delta_aika):
itse.vihollinen_x += 0.5
jos self.enemy_x >= LEVEYS:
self.game_over = Totta

defon_key_press(itse, avain, muokkaajat):
jos avain == arcade.key. VASEN:
self.player_x -= PLAYER_SPEED
elif avain == arcade.key. OIKEALLA:
self.player_x += PLAYER_SPEED

peli = Peli()
game.setup()
arcade.run()

Pelin lisääminen näytön yli

Lisää näytölle peli, joka näyttää viestin, kun vihollinen liikkuu peliikkunan ulkopuolelle. Käytä arcade.gui. UIManger ja arcade.gui. UIMessageBox luokkiin tämän saavuttamiseksi.

Luo ilmentymä UIManger ja ota se käyttöön. Sisällä on_draw menetelmä, tarkista, onko peli ohi lippu on asetettu, ja jos on, piirrä käyttöliittymän hallinta. The show_game_over_screen menetelmä luo a UIMessageBox pelin päättymisviestillä ja lisää sen käyttöliittymän hallintaan. Voit myös ottaa käyttöön ja poistaa käytöstä käyttöliittymähallinnan päivittää pelin tilaan perustuva menetelmä.

Luo uusi tiedosto nimeltä game-over.py ja lisää koodi alla olevilla päivityksillä:

tuonti pelihalli
alkaen arcade.gui tuonti UIManager, UIMessageBox

LEVEYS = 800
KORKEUS = 600
PLAYER_SPEED = 25

luokkaaPeli(pelihalli. Ikkuna):
def__sen sisällä__(itse):
super().__init__(WIDTH, HEIGHT, "Yksinkertainen peli")
self.player_x = LEVEYS // 2
self.enemy_x = LEVEYS - 50
self.ui_manager = UIManager()
self.game_over = Väärä

defperustaa(itse):
arcade.set_background_color (arcade.color. VALKOINEN)
self.ui_manager.enable() # Ota käyttöliittymähallinta käyttöön

defon_draw(itse):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. SININEN)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. PUNAINEN)
jos self.game_over:
self.ui_manager.draw()

defpäivittää(itse, delta_aika):
itse.vihollinen_x += 0.5
jos self.enemy_x >= LEVEYS:
self.show_game_over_screen()
self.game_over = Totta
jos self.game_over:
self.ui_manager.enable()
muu:
self.ui_manager.disable()

defon_key_press(itse, avain, muokkaajat):
jos avain == arcade.key. VASEN:
self.player_x -= PLAYER_SPEED
elif avain == arcade.key. OIKEALLA:
self.player_x += PLAYER_SPEED

defshow_game_over_screen(itse):
message_box = UIMessageBox(
leveys =400,
korkeus =200,
viestin_teksti="Peli ohi!"
)
self.ui_manager.add (viestilaatikko)

peli = Peli()
game.setup()
arcade.run()

Alla on tulos:

Painikkeiden lisääminen

Nyt voit tehostaa peliä näytöllä lisäämällä painikkeita pelin uudelleenkäynnistämiseksi tai poistumiseksi. Voit suorittaa tämän käyttämällä painikkeita parametri UIMessageBox ja tarjoaa takaisinsoittotoiminnon painikkeiden napsautusten käsittelemiseksi.

Luo uusi tiedosto nimeltä buttons.py ja lisää koodi alla olevilla päivityksillä:

defshow_game_over_screen(itse):
message_box = UIMessageBox(
leveys =400,
korkeus =200,
viestin_teksti="Peli ohi!",
painikkeet =("Uudelleenkäynnistää", "Poistu"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (viestilaatikko)

defon_game_over_button_click(itse, painikkeen_teksti):
jos button_text == "Uudelleenkäynnistää":
self.restart_game()
elif button_text == "Poistu":
arcade.close_window()

defrestart_game(itse):
self.game_over = Väärä
self.enemy_x = LEVEYS - 50
self.ui_manager.clear()

Alla on tulos:

Vuonna show_game_over_screen menetelmää, lisää kaksi painiketta, Uudelleenkäynnistää ja Poistu, kohtaan UIMessageBox määrittämällä ne kohdassa painikkeita parametri. Tarjoa myös takaisinsoittotoiminto, on_game_over_button_click, käsitelläksesi painikkeiden napsautuksia. Tarkista takaisinsoittotoiminnon sisällä, mitä painiketta napsautettiin, ja suorita vastaava toimenpide.

Arcaden GUI-työkalut tarjoavat useita lisäominaisuuksia, jotka voivat parantaa pelivalikkojen ja käyttöliittymäsuunnittelun toimivuutta ja interaktiivisuutta entisestään. Tässä on muutamia esimerkkejä:

UIDraggableMixin

The UIDraggableMixin luokkaa voidaan käyttää minkä tahansa käyttöliittymän widgetin tekemiseen vedettäväksi. Se tarjoaa toiminnot vetämällä, jolloin käyttäjät voivat siirtää käyttöliittymäelementtejä näytöllä. Yhdistämällä tämän miksauksen muihin käyttöliittymäwidgetteihin voit luoda vedettäviä ikkunoita tai paneeleja peliisi.

UIMouseFilterMixin

The UIMouseFilterMixin luokan avulla voit saada kiinni kaikki hiiren tapahtumat, jotka tapahtuvat tietyssä widgetissä. Tämä on erityisen hyödyllistä ikkunamaisissa widgeteissä, joissa haluat estää hiiren tapahtumia vaikuttamasta taustalla oleviin käyttöliittymäelementteihin. Suodattamalla hiiren tapahtumia voit hallita widgetin vuorovaikutusta itsenäisesti.

UIWindowLikeMixin

The UIWindowLikeMixin luokka tarjoaa ikkunamaisen toiminnan widgetille. Se käsittelee kaikki hiiritapahtumat, jotka tapahtuvat widgetin rajojen sisällä, ja mahdollistaa widgetin vetämisen. Tämä on ihanteellinen vedettävien ikkunoiden tai paneelien luomiseen, joiden kanssa käyttäjät voivat olla vuorovaikutuksessa pelissäsi.

Pinta

The Pinta luokka edustaa puskuria käyttöliittymäelementtien piirtämiseen. Se tiivistää puskurin piirustuksen ja tarjoaa menetelmiä puskurin aktivoimiseksi, tyhjentämiseksi ja piirtämiseksi näytölle. Voit käyttää tätä luokkaa sisäisesti widgetien tai mukautettujen käyttöliittymäelementtien hahmontamiseen pelissäsi.

Nämä lisäominaisuudet tarjoavat mahdollisuuksia luoda interaktiivisempia ja dynaamisempia käyttökokemuksia peleissäsi. Kokeile näitä ominaisuuksia lisätäksesi ainutlaatuisia toimintoja ja tehdäksesi pelivalikoistasi ja käyttöliittymärakenteistasi erottuvia.

GUI: n sisällyttämisen parhaat käytännöt

Kun sisällytät GUI-työkaluja peleihin Arcaden avulla, on tärkeää noudattaa joitain parhaita käytäntöjä sujuvan ja saumattoman käyttökokemuksen varmistamiseksi. Tässä on joitain vinkkejä, jotka kannattaa pitää mielessä:

Suunnitelma ja prototyyppi

Ennen kuin sukellat toteutukseen, käytä aikaa pelivalikkojen ja käyttöliittymäelementtien suunnitteluun ja prototyyppien tekemiseen. Harkitse ulkoasua, toiminnallisuutta ja visuaalista estetiikkaa yhtenäisen ja käyttäjäystävällisen suunnittelun varmistamiseksi.

Pidä se johdonmukaisena

Säilytä yhtenäinen visuaalinen tyyli ja asettelu pelivalikoissasi ja käyttöliittymäelementeissäsi. Tämä auttaa käyttäjiä navigoimaan pelissäsi helpommin ja tarjoaa yhtenäisen kokemuksen.

Responsiivinen muotoilu

Suunnittele käyttöliittymäelementit reagoiviksi ja mukautuviksi eri näyttökokoihin ja resoluutioihin. Tämä varmistaa, että pelivalikot ja käyttöliittymä pysyvät käyttökelpoisina ja visuaalisesti houkuttelevina eri laitteilla.

Tehokas tapahtumanhallinta

Käsittele käyttäjän syöttämiä tapahtumia tehokkaasti varmistaaksesi reagoivan ja sujuvan vuorovaikutuksen. Vältä tarpeettomia laskelmia tai tapahtumien käsittelyä, jotka voivat aiheuttaa viivettä tai viivettä käyttöliittymän reagointikykyyn.

Käyttäjien palaute

Anna käyttäjille selkeää ja välitöntä palautetta, kun he ovat vuorovaikutuksessa pelivalikkojen ja käyttöliittymän elementtien kanssa. Visuaalisia vihjeitä, animaatioita ja pelien äänipalaute voi parantaa käyttökokemusta ja saada peli tuntumaan hienostuneemmalta.

Näitä parhaita käytäntöjä noudattamalla voit luoda pelivalikoita ja käyttöliittymämalleja, jotka ovat intuitiivisia ja visuaalisesti houkuttelevia.

Lisää käyttäjien sitoutumista visuaalisesti houkuttelevalla käyttöliittymällä

GUI-elementtien lisääminen peliin ei vain paranna käytettävyyttä, vaan myös parantaa visuaalista vetovoimaa ja pelaajien yleistä sitoutumista. Luotpa sitten aloitusvalikkoa, pelin yli näytön tai mitä tahansa muuta käyttöliittymäelementtiä, Arcaden GUI-työkalut tarjoavat valikoiman ominaisuuksia ja toimintoja, jotka parantavat pelisi käyttökokemusta.