Saa päähenkilösi liikkumaan vastauksena pelaajan syötteeseen Arcade-kirjaston näppäimistö- ja hiiritapahtumien avulla.

Arcade on suosittu Python-kirjasto, jonka avulla voit luoda 2D-pelihallipelejä. Se on helppokäyttöinen kirjasto, joka tarjoaa yksinkertaisen kehyksen pelien luomiseen Pythonilla.

Yksi jokaisen pelin olennaisista osista on pelaajan liikkuminen.

Yksinkertaisen pelin luominen Arcadessa

Löydät täydellisen koodi tässä GitHub repossa.

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

pip asennuskirjasto

Luo sen jälkeen Player-luokka alaluokaksi pelihalli. Sprite luokka ja a MyGame luokka alaluokkana pelihalli. Ikkuna. The MyGame luokassa on menetelmiä peliobjektien asettamiseen, niiden esittämiseen näytölle, pelin tilan päivittämiseen ja käyttäjien syötteiden käsittelemiseen. Koodi peliruudun ja pelaajaobjektin luomiseksi on seuraava:

tuonti pelihalli

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

luokkaaPelaaja(pelihalli. Sprite):

instagram viewer

def__sen sisällä__(itse):
super().__init__("soitin.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = NÄYTÖN_KORKEUS // 2

luokkaaMyGame(pelihalli. Ikkuna):
def__sen sisällä__(itse):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Minun pelini")
self.player = Ei mitään
arcade.set_background_color (arcade.color. MUSTA)

defperustaa(itse):
self.player = Pelaaja()

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

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

MyGame().run()

Soittimen liikkeen lisääminen näppäimistön avulla

Nyt kun olet luonut pelinäytön ja pelaajaobjektin, voit siirtää soitinta näppäimistön syötteen mukaan. Määrittele on_key_press() ja on_key_release() menetelmiä, joita kutsut, kun soitin painaa tai vapauttaa näppäintä.

defon_key_press(itse, avain, muokkaajat):
jos avain == arcade.key. VASEN:
self.player.change_x = -5
elif avain == arcade.key. OIKEALLA:
self.player.change_x = 5
elif avain == arcade.key. YLÖS:
self.player.change_y = 5
elif avain == arcade.key. ALAS:
self.player.change_y = -5

defon_key_release(itse, avain, muokkaajat):
jos avain == arcade.key. VASEN tai avain == arcade.key. OIKEALLA:
self.player.change_x = 0
elif avain == arcade.key. YLÖS tai avain == arcade.key. ALAS:
self.player.change_y = 0

Kun lisäät pelaajan liikettä näppäimistön tuloilla, voit mukauttaa liikkeen nopeutta muuttamalla arvoa, joka on määritetty self.player.change_x ja self.player.change_y. Voit myös lisätä ehtoja rajoittaaksesi pelaajien liikkumista pelinäytössä.

Soittimen liikkeen lisääminen hiiren sisääntulolla

Näppäimistötulojen lisäksi voit lisätä soittimen liikkeitä myös hiiren syötteellä. Määrittele on_mouse_motion() menetelmä, joka toimii, kun pelaaja liikuttaa hiirtä. Aseta menetelmän sisällä keskus_x ja center_y soittimen objektin ominaisuudet hiiren nykyiseen sijaintiin.

defon_mouse_motion(itse, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y

Kun lisäät pelaajan liikettä hiiren syötteellä, voit mukauttaa pelaajaobjektin käyttäytymistä, kun käyttäjä napsauttaa tai pitää hiirtä alhaalla määrittämällä menetelmiä, kuten on_mouse_press() tai on_mouse_drag(). Voit käyttää näitä menetelmiä käynnistääksesi pelaajan toimintoja, kuten ampumista tai hyppäämistä pelimekaniikasta riippuen.

Esittelyssä lisäominaisuudet

Voit parantaa pelaajan liikettä entisestään ottamalla huomioon kiihtyvyyden ja hidastuvuuden. Muokkaa on_key_press() tapa vähentää tai lisätä muutos_x ja muutos_y pelaajaobjektin ominaisuudet liikesuunnasta riippuen. Aseta myös muutos_x ja muutos_y ominaisuudet arvoon 0 on_key_release() menetelmällä, kuten ennenkin.

defon_key_press(itse, avain, muokkaajat):
jos avain == arcade.key. VASEN:
self.player.change_x -= 5
elif avain == arcade.key. OIKEALLA:
self.player.change_x += 5
elif avain == arcade.key. YLÖS:
self.player.change_y += 5
elif avain == arcade.key. ALAS:
self.player.change_y -= 5

defon_key_release(itse, avain, muokkaajat):
jos avain == arcade.key. VASEN tai avain == arcade.key. OIKEALLA:
self.player.change_x = 0
elif avain == arcade.key. YLÖS tai avain == arcade.key. ALAS:
self.player.change_y = 0

Kuten PyGame, voit myös lisää törmäyksen havaitseminen pelaajaobjektin välillä ja muita peliesineitä, kuten vihollisia tai esteitä pelihallissa. Voit saavuttaa tämän lisäämällä seuraavan koodin päivittää() menetelmä MyGame luokka:

defpäivittää(itse, delta_aika):
self.player.update()

# Tarkista törmäykset pelaajan ja muiden peliobjektien välillä
törmäykset = arcade.check_for_collision_with_list (self.player, self.enemy_list)

varten törmäys sisään törmäykset:
törmäys.kill()

Tee mukaansatempaavia pelejä interaktiivisella pelaajaliikkeellä

Interaktiivinen pelaajan liike on olennainen osa jokaista kiinnostavaa peliä. Erilaisten liikemekaniikan, kuten hyppäämisen, juoksemisen, lentämisen ja liukumisen, käyttö voi lisätä peliin vaihtelua ja jännitystä.

Pelaajien liikkeen hallinnan antaminen lisää toimivuuden ja uppoamisen tunnetta, mikä voi johtaa tyydyttävämpään pelikokemukseen.