Useimmat tasohyppelypelit käyttävät tietyntyyppisiä hyppyjä, muunnelmilla, kuten kaksoishypyllä ja vaihtelevan korkeudella. Tutustu näiden liikkeiden takana oleviin tekniikoihin.
Hyppymekaniikalla on ratkaiseva rooli tasohyppelypelin pelikokemuksen parantamisessa. Ottamalla käyttöön erilaisia hyppymekaniikkoja Pythonin Arcade Libraryn kanssa voit lisätä peleihin syvyyttä ja jännitystä.
Arcade-kirjasto tarjoaa intuitiivisen ja helppokäyttöisen kehyksen pelien luomiseen, joten se on ihanteellinen valinta tasohyppelyn luomiseen.
Luo yksinkertainen peli
Ennen aloittamista, asenna pip laitteellesi ja käytä tätä komentoa asentaaksesi pelihalli moduuli:
pip asennus arcade
Tutustuaksesi hyppymekaniikan toimintaan, aloita luomalla yksinkertainen peli, jossa pelaaja voi liikkua vasemmalle ja oikealle painovoiman ja staattisen alustan avulla.
Tässä artikkelissa käytetty koodi on saatavilla tässä GitHub-arkisto ja sen käyttö on ilmaista MIT-lisenssin alaisena.
Pelissä pelaaja törmää alustaan ja seisoo sen päällä. Luo uusi tiedosto nimeltä simple-game.py ja lisää alla oleva koodi:
tuonti pelihalli
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLAYER_RADIUS = 20
PLATFORM_WIDTH = 200
PLATFORM_HEIGHT = 20
PAINOVAISUUS = 0.5
sininen = arcade.color. SININEN
vihreä = arcade.color. VIHREÄluokkaaGameWindow(pelihalli. Ikkuna):
def__sen sisällä__(itse):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Hyppymekaniikka")
self.player_x = SCREEN_WIDTH // 2
self.player_y = SCREEN_HEIGHT // 2
self.player_dy = 0
self.platform_x = SCREEN_WIDTH // 2
self.platform_y = SCREEN_HEIGHT // 4defon_draw(itse):
arcade.start_render()arcade.draw_circle_filled (self.player_x, self.player_y,
PLAYER_RADIUS, sininen)arcade.draw_rectangle_filled (self.platform_x, self.platform_y,
PLATFORM_WIDTH, PLATFORM_HEIGHT, vihreä)defon_update(itse, delta_aika):
self.player_dy -= PAINOVOIMA
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2jos self.player_y < dist:
self.player_y = dist
self.player_dy = 0
peli = GameWindow()
arcade.run()
Kun suoritat ohjelman, näet pelaajaobjektin putoavan nopeasti alustalle ja lepäävän sitten sen päällä.
Yksinkertaisen hyppyominaisuuden lisääminen
Lisää nyt peliin yksinkertainen hyppyominaisuus. Tarkista soittimen ja alustan välinen törmäys ja laukaisee hyppytoiminnon, kun pelaaja painaa ylänuolinäppäintä. Tämän saavuttamiseksi luo uusi tiedosto nimeltä jump.py ja koodi alla olevilla päivityksillä:
luokkaaGameWindow(pelihalli. Ikkuna):
def__sen sisällä__(itse):
# ...defon_key_press(itse, avain, muokkaajat):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2jos avain == arcade.key. YLÖS ja self.player_y == on_ground:
self.player_dy = 10
defon_update(itse, delta_aika):
self.player_dy -= PAINOVOIMA
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2
jos self.player_y < dist:
self.player_y = dist
self.player_dy = 0
self.jump_count = 0
Double Jump -ominaisuuden lisääminen
Voit lisätä kaksoishyppyominaisuuden laajentamalla olemassa olevaa hyppylogiikkaa. Kun pelaaja on alustalla ja painaa ylänuolinäppäintä ensimmäistä kertaa, hän suorittaa tavallisen hypyn. Jos he kuitenkin painavat ylös-nuolinäppäintä uudelleen ollessaan ilmassa, pelaaja suorittaa kaksoishypyn.
Luo uusi tiedosto nimeltä double-jump.py ja koodi alla olevilla päivityksillä:
luokkaaGameWindow(pelihalli. Ikkuna):
def__sen sisällä__(itse):
self.jump_count = 0# Seuraa hyppyjen määräädefon_key_press(itse, avain, muokkaajat):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2
jos avain == arcade.key. YLÖS:
jos self.player_y == on_ground tai self.jump_count < 2:
self.player_dy = 10
self.jump_count += 1
Sisältää lisäominaisuuksia
Yksinkertaisten ja kaksoishyppyjen lisäksi voit lisätä monia ominaisuuksia parantaaksesi pelisi hyppymekaniikkaa.
Muuttuvan hyppykorkeuden toteuttaminen
Jos pelaaja voi hallita hyppyjen korkeutta sen perusteella, kuinka kauan hän pitää hyppypainiketta painettuna, se voi lisätä pelin hallintaa ja strategiaa. Tässä on esimerkki siitä, kuinka voit ottaa käyttöön muuttuvan hyppykorkeuden. Luo uusi tiedosto nimeltä variable-jump.py ja koodi alla olevilla päivityksillä:
PAINOVAISUUS = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100luokkaaGameWindow(pelihalli. Ikkuna):
def__sen sisällä__(itse):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Hyppymekaniikka")
self.jump_pressed = Väärä
self.jump_power = 0defon_key_press(itse, avain, muokkaajat):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2jos avain == arcade.key. YLÖS ja self.player_y == on_ground:
self.jump_pressed = Tottadefon_key_release(itse, avain, muokkaajat):
jos avain == arcade.key. YLÖS:
self.jump_pressed = Väärädefupdate_jump_power(itse):
# Lisää hyppytehoa, kun hyppypainiketta pidetään painettuna
jos self.jump_pressed:
self.jump_power += JUMP_POWER_INCREMENTjos self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
muu:
jos self.jump_power > 0:
self.jump_power -= 1defon_update(itse, delta_aika):
self.player_dy -= PAINOVOIMA
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2jos self.player_y == dist ja self.jump_power > 0:
self.player_dy = self.jump_power
self.player_y += self.player_dy
self.update_jump_power()
Air Dash -ominaisuuden käyttöönotto
Ilmanohjausmekaanikon lisääminen voi antaa pelaajalle lisää liikkumisvaihtoehtoja ollessaan ilmassa. Luo uusi tiedosto nimeltä air-dash.py ja koodi alla olevilla päivityksillä:
AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2luokkaaGameWindow(pelihalli. Ikkuna):
def__sen sisällä__(itse):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Hyppymekaniikka")
self.on_ground = Väärä
self.air_dashes = 0
self.can_air_dash = Tottadefon_key_press(itse, avain, muokkaajat):
jos avain == arcade.key. YLÖS ja self.on_ground:
self.player_dy = 10
elif avain == arcade.key. YLÖS ja \
self.air_dash < MAX_AIR_DASHES ja \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
self.air_dashes += 1
self.can_air_dash = Väärädefon_update(itse, delta_aika):
self.player_dy -= PAINOVOIMA
self.player_y += self.player_dydist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2
jos self.player_y <= dist:
self.player_y = dist
self.player_dy = 0
self.on_ground = Totta
muu:
self.on_ground = Vääräself.player_x += self.player_dx
jos self.player_x < PLAYER_RADIUS:
self.player_x = PLAYER_RADIUS
self.player_dx = 0
elif self.player_x > SCREEN_WIDTH - PLAYER_RADIUS:
self.player_x = SCREEN_WIDTH - PLAYER_RADIUS
self.player_dx = 0
jos self.on_ground:
self.air_dashes = 0
self.can_air_dash = Totta
Kun suoritat ilmaviivan, pelaajahahmosi siirtyy kauas alustalta:
Hyppymekaniikan parhaat käytännöt
Hyppymekaniikan käyttöönotto pelissä vaatii huolellista harkintaa sujuvan ja nautinnollisen pelikokemuksen varmistamiseksi. Tässä on joitain parhaita käytäntöjä, jotka kannattaa pitää mielessä:
Tasapainohypyn korkeus ja kesto
Realismin ja pelin vaikeuden tunteen säilyttämiseksi on tärkeää tasapainottaa hypyn korkeus ja kesto. Liian korkea tai lyhyt hyppy voi vaikuttaa negatiivisesti pelaamiseen. Kokeile erilaisia hyppykorkeuksia ja -kestoja löytääksesi oikean tasapainon peliisi.
Harkitse pelin fysiikkaa, hahmojen kykyjä ja yleistä tasosuunnittelua, kun määrität sopivaa hyppymekaniikkaa.
Anna visuaalista ja äänipalautetta
Visuaalinen ja äänipalaute on ratkaisevan tärkeää, jotta hyppyt tuntuvat reagoivilta ja tyydyttäviltä. Käytä animaatioita tai hiukkastehosteita kuvaamaan pelaajan hyppyliikettä ja laskeutumista.
Lisäksi harkitse äänitehosteiden tai taustamusiikin lisääminen mikä parantaa hyppykokemusta. Nämä visuaaliset ja äänimerkit edistävät pelaajien uppoamista ja sitoutumista.
Hienosäädä törmäystunnistus
Tarkka törmäysten havaitseminen soittimen ja alustojen välillä on välttämätöntä tarkalle ja luotettavalle hyppymekaniikalle. Varmista, että törmäyksentunnistusalgoritmi on vankka ja käsittelee oikein erilaisia skenaarioita, kuten tasolle laskeutuminen, törmäys esteisiin tai liukuminen seiniä pitkin.
Testaa ja toista törmäyksentunnistuskoodia poistaaksesi häiriöt tai epäjohdonmukaisuudet, jotka voivat vaikuttaa hyppymekaniikkaan.
Tee peleistä hauskempi hyppymekaniikka
Hyppymekaniikan lisääminen voi parantaa huomattavasti pelin sitoutumista ja nautintoa. Se avaa uusia mahdollisuuksia tasosuunnitteluun, pulmiin ja haastaviin esteisiin. Ottamalla käyttöön erilaisia hyppymekaniikkoja Pythonin Arcade Game Libraryssa voit luoda kiehtovia tasohyppelypelejä, jotka viihdyttävät pelaajia tuntikausia.
Muista, että kokeilemalla erilaisia hyppymekaniikkoja ja yhdistämällä ainutlaatuisia ominaisuuksia voit erottaa pelisi muista ja tehdä pelaajille mukaansatempaavan ja mieleenpainuvan kokemuksen.