Syöttöihin vastaaminen on elintärkeää kaikissa peleissä, ja näppäimistöä on hyvä tukea käyttäjille, jotka pitävät sitä parempana. Ota selvää Pythonin pelihallikirjastosta.

Näppäimistön syöttö on olennainen osa pelin kehitystä, ja sen tehokas käsittely on ratkaisevan tärkeää hyvän käyttökokemuksen takaamiseksi. Arcade-kirjasto tarjoaa suoraviivaisen ja tehokkaan tavan käsitellä Python-pelien näppäimistösyötteitä.

Yksinkertaisen pelin luominen pelaajan kanssa

Löydät täydellisen koodin osoitteesta tämä GitHub-repo.

Ennen kuin alat käsitellä näppäimistön syötteitä, varmista, että sinulla on pip asennettuna laitteellesi. Käytä tätä komentoa asentaaksesi arcade-kirjaston:

pip asennus arcade

Luo sen jälkeen yksinkertaisen pelin luuranko:

tuonti pelihalli

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

luokkaaMyGame(pelihalli. Ikkuna):
def__sen sisällä__(itse, leveys, korkeus):
super().__init__(leveys, korkeus, "Minun pelini")
arcade.set_background_color (arcade.color. VALKOINEN)

defon_draw(itse):
arcade.start_render()

defpäivittää(itse, delta_aika):
kulkea

Oma peli (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

instagram viewer

Tämä luo ikkunan valkoisella taustalla. Lisää seuraavaksi pelaaja peliisi:

luokkaaPelaaja:
def__sen sisällä__(itse, x, y):
itse.x = x
itse.y = y
itse.nopeus = 5
itse.säde = 20

defpiirtää(itse):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. SININEN)

defSiirry vasemmalle(itse):
itse.x -= itse.nopeus

defliiku oikealle(itse):
itse.x += itse.nopeus

defliiku ylös(itse):
itse.y += itse.nopeus

defsiirrä_alas(itse):
itse.y -= itse.nopeus

Tämä luo yksinkertaisen pelaajan sinisellä ympyrällä. Voit lisätä tämän pelaajan peliisi muokkaamalla MyGame luokka:

tuonti pelihalli

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

luokkaaMyGame(pelihalli. Ikkuna):
def__sen sisällä__(itse, leveys, korkeus):
super().__init__(leveys, korkeus, "Minun pelini")
arcade.set_background_color (arcade.color. VALKOINEN)
self.player = Player (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

defon_draw(itse):
arcade.start_render()
self.player.draw()

defpäivittää(itse, delta_aika):
kulkea

defpää():
Oma peli (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

jos __nimi__ == "__main__":
pää()

Nyt sinulla on pelissäsi pelaaja, jonka voit piirtää näytölle.

Näppäinpainalluksiin ja -vapautuksiin vastaaminen

Vastataksesi käyttäjän syötteisiin pelissäsi, sinun on käsiteltävä näppäinpainalluksia ja -vapautuksia. Arcade-kirjasto tarjoaa kaksi tapaa käsitellä näitä tapahtumia: on_key_press ja on_key_release.

Jotta voit käyttää näitä menetelmiä, sinun on määritettävä ne omassa pelihalli. Ikkuna alaluokka. Kun pelaaja painaa tai vapauttaa näppäintä, arcade suorittaa vastaavan menetelmän ja välittää sille kaksi argumenttia: avain ja muuttajat. avain on kokonaisluku, joka edustaa painetun tai vapautetun näppäimen näppäinkoodia. modifioijia on bittikenttä, joka edustaa mitä tahansa muokkausnäppäimiä, joita soitin on myös painanut, kuten Shift tai Control.

Tässä on esimerkki kuinka vastata näppäinpainallukseen pelissäsi:

luokkaaMyGame(pelihalli. Ikkuna):
defon_key_press(itse, avain, muokkaajat):
jos avain == arcade.key. VASEN:
# Siirrä pelaaja vasemmalle
elif avain == arcade.key. OIKEALLA:
# Siirrä soitin oikealle
elif avain == arcade.key. YLÖS:
# Siirrä soitinta ylöspäin
elif avain == arcade.key. ALAS:
# Siirrä soitinta alas

Voit vastata avainjulkaisuihin määrittämällä on_key_release menetelmä samalla tavalla:

luokkaaMyGame(pelihalli. Ikkuna):
defon_key_release(itse, avain, muokkaajat):
jos avain == arcade.key. VASEN:
# Lopeta pelaajan siirtäminen vasemmalle
elif avain == arcade.key. OIKEALLA:
# Lopeta pelaajan siirtäminen oikealle
elif avain == arcade.key. YLÖS:
# Lopeta pelaajan siirtäminen ylös
elif avain == arcade.key. ALAS:
# Lopeta pelaajan siirtäminen alas

On tärkeää huomata, että vangitseminen käyttäjän syöte pygamessa vaatii manuaalisen tapahtumien tarkistuksen pelisilmukassasi. Toisaalta Arcade-kirjasto kutsuu automaattisesti asiaankuuluvat menetelmät, kun pelaaja painaa tai vapauttaa näppäintä. Tämä tarkoittaa, että sinun ei tarvitse manuaalisesti tarkistaa pelisilmukan tärkeimpiä tapahtumia, mikä säästää ylimääräisen koodin vaivaa.

Näppäimistön syötteiden käsittelyn mukauttaminen pelisi tarpeisiin

Arcade-kirjasto tarjoaa monia tapoja mukauttaa näppäimistön syöttöä. Voit halutessasi muuttaa pelisi näppäinsidoksia tai antaa pelaajan muokata omia näppäinsidoksia.

Voit tehdä tämän määrittelemällä sanakirjan key_map joka yhdistää jokaisen avaimen pelaajaobjektin vastaavaan menetelmään. Jotta pelaaja voi mukauttaa näppäinsidoksiaan, voit lisätä asetusvalikon, joka muuttaa key_map sanakirjaa pelaajan mieltymysten mukaan.

Tässä on esimerkki:

luokkaaMyGame(pelihalli. Ikkuna):
def__sen sisällä__(itse, leveys, korkeus, otsikko):
super().__init__(leveys, korkeus, otsikko)
self.player = Player(100, 100)

self.key_map = {
arcade.key. LEFT: self.player.move_left,
arcade.key. OIKEA: self.player.move_right,
arcade.key. YLÖS: self.player.move_up,
arcade.key. ALAS: self.player.move_down
}

defon_key_press(itse, avain, muokkaajat):
jos avain sisään self.key_map:
self.key_map[key]()

defon_key_release(itse, avain, muokkaajat):
jos avain sisään self.key_map:
self.key_map[näppäin + 1]()

Vastaa käyttäjän syötteisiin reaaliajassa

Reaaliaikainen vastaaminen käyttäjän syötteisiin on olennainen osa kiinnostavan pelin luomista. Kun käytät aikaa käsitelläksesi näppäimistön syötteitä oikein pelissäsi, voit luoda kiinnostavamman ja mukaansatempaavan kokemuksen pelaajillesi, ja viime kädessä saat pelisi erottumaan joukosta markkinapaikka.