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 = 480luokkaaMyGame(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()
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 = 20defpiirtää(itse):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. SININEN)defSiirry vasemmalle(itse):
itse.x -= itse.nopeusdefliiku oikealle(itse):
itse.x += itse.nopeusdefliiku 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 = 480luokkaaMyGame(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):
kulkeadefpää():
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.