Većina platformskih igara koristi neku vrstu skoka, s varijacijama uključujući dvostruki skok i skok s promjenjivom visinom. Otkrijte tehnike iza ovih pokreta.

Mehanika skakanja igra ključnu ulogu u poboljšanju iskustva igranja platformske igre. Implementacijom različitih mehanika skakanja s Python Arcade Library, možete dodati dubinu i uzbuđenje svojim igrama.

Biblioteka Arcade pruža intuitivan i jednostavan za korištenje okvir za kreiranje igara, što ga čini idealnim izborom za stvaranje vašeg platformera.

Stvorite jednostavnu igru

Prije početka, instalirajte pip na svoj uređaj i koristite ovu naredbu za instalaciju arkada modul:

pip instaliraj arkadu

Da biste istražili kako funkcionira mehanika skakanja, počnite stvaranjem jednostavne igre u kojoj se igrač može kretati lijevo-desno pomoću gravitacije i statične platforme.

Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.

U igri će se igrač sudariti s platformom i stati na nju. Stvorite novu datoteku pod nazivom jednostavna igra.py i dodajte donji kod:

instagram viewer
uvoz arkada

SCREEN_WIDTH = 800
VISINA_EKRANA = 600
PLAYER_RADIUS = 20
PLATFORMA_WIDTH = 200
VISINA_PLATFORME = 20
GRAVITACIJA = 0.5
plava = arkada.boja. PLAVA
zelena = arkada.boja. ZELENO

razredaGameWindow(arkada. Prozor):
def__u tome__(sebe):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mehanika skakanja")
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 // 4

defizvlačenje(sebe):
arcade.start_render()

arcade.draw_circle_filled (self.player_x, self.player_y,
PLAYER_RADIUS, plavo)

arcade.draw_rectangle_filled (self.platform_x, self.platform_y,
PLATFORM_WIDTH, PLATFORM_HEIGHT, zeleno)

defna_ažuriranju(sam, delta_vrijeme):
self.player_dy -= GRAVITACIJA
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ako self.player_y < dist:
self.player_y = dist
self.player_dy = 0

igra = GameWindow()
arkada.run()

Kada pokrenete program, vidjet ćete kako objekt igrača brzo pada na platformu, a zatim ostaje ležati na njoj.

Dodavanje značajke jednostavnog skoka

Sada igrici dodajte značajku jednostavnog skoka. Provjerite koliziju između igrača i platforme i pokrenu akciju skakanja kada igrač pritisne tipku sa strelicom prema gore. Da biste to postigli, stvorite novu datoteku pod nazivom skok.py i kod sa sljedećim ažuriranjima:

razredaGameWindow(arkada. Prozor):
def__u tome__(sebe):
# ...

defna_pritisak_tipke(ja, ključ, modifikatori):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ako ključ == arkada.ključ. GORE i self.player_y == on_ground:
self.player_dy = 10

defna_ažuriranju(sam, delta_vrijeme):
self.player_dy -= GRAVITACIJA
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ako self.player_y < dist:
self.player_y = dist
self.player_dy = 0
self.jump_count = 0

Dodavanje značajke dvostrukog skoka

Da biste dodali značajku dvostrukog skoka, proširite postojeću logiku skoka. Kada je igrač na platformi i prvi put pritisne tipku sa strelicom gore, izvest će uobičajeni skok. Međutim, ako ponovno pritisne tipku sa strelicom prema gore dok je u zraku, igrač će izvesti dvostruki skok.

Stvorite novu datoteku pod nazivom dvostruki skok.py i kod sa sljedećim ažuriranjima:

razredaGameWindow(arkada. Prozor):
def__u tome__(sebe):
self.jump_count = 0# Pratite broj skokova

defna_pritisak_tipke(ja, ključ, modifikatori):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ako ključ == arkada.ključ. GORE:
ako self.player_y == on_ground ili samo.broj_skokova < 2:
self.player_dy = 10
samo.broj_skokova += 1

Uključujući dodatne značajke

Osim jednostavnih i dvostrukih skokova, postoje mnoge značajke koje možete dodati kako biste poboljšali mehaniku skakanja u svojoj igri.

Implementacija promjenjive visine skoka

Dopuštanje igraču da kontrolira visinu svojih skokova na temelju toga koliko dugo drži gumb za skok može dodati više kontrole i strategije igranju. Evo primjera kako možete implementirati promjenjivu visinu skoka. Stvorite novu datoteku pod nazivom varijabla-skok.py i kod sa sljedećim ažuriranjima:

GRAVITACIJA = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100

razredaGameWindow(arkada. Prozor):
def__u tome__(sebe):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mehanika skakanja")
self.jump_pressed = lažno
self.jump_power = 0

defna_pritisak_tipke(ja, ključ, modifikatori):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ako ključ == arkada.ključ. GORE i self.player_y == on_ground:
self.jump_pressed = Pravi

defna_puštanje_ključa(ja, ključ, modifikatori):
ako ključ == arkada.ključ. GORE:
self.jump_pressed = lažno

defupdate_jump_power(sebe):
# Povećajte snagu skoka dok držite tipku za skok
ako self.jump_pressed:
self.jump_power += SKOK_POWER_INCREMENT

ako self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
drugo:
ako self.jump_power > 0:
samo.snaga_skoka -= 1

defna_ažuriranju(sam, delta_vrijeme):
self.player_dy -= GRAVITACIJA
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ako self.player_y == dist i self.jump_power > 0:
self.player_dy = self.jump_power

self.player_y += self.player_dy
self.update_jump_power()

Implementacija značajke Air Dash

Dodavanje mehanike za zračni udar može dati igraču dodatne mogućnosti mobilnosti dok je u zraku. Stvorite novu datoteku pod nazivom air-dash.py i kod sa sljedećim ažuriranjima:

AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2

razredaGameWindow(arkada. Prozor):
def__u tome__(sebe):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mehanika skakanja")
sebe.na_zemlji = lažno
self.air_dashes = 0
self.can_air_dash = Pravi

defna_pritisak_tipke(ja, ključ, modifikatori):
ako ključ == arkada.ključ. GORE i self.on_ground:
self.player_dy = 10
elif ključ == arkada.ključ. GORE i \
self.zračne_crtice < MAX_AIR_CRTE i \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
sam.zračne_crtice += 1
self.can_air_dash = lažno

defna_ažuriranju(sam, delta_vrijeme):
self.player_dy -= GRAVITACIJA
self.player_y += self.player_dy

dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ako self.player_y <= dist:
self.player_y = dist
self.player_dy = 0
sebe.na_zemlji = Pravi
drugo:
sebe.na_zemlji = lažno

self.player_x += self.player_dx

ako 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

ako self.on_ground:
self.air_dashes = 0
self.can_air_dash = Pravi

Kada izvodite zračni zalet, vaš lik igrača će se udaljiti daleko od platforme:

Najbolje prakse za mehaniku skakanja

Implementacija mehanike skakanja u igri zahtijeva pažljivo razmatranje kako bi se osiguralo glatko i ugodno iskustvo igranja. Evo nekoliko najboljih praksi koje treba imati na umu:

Visina i trajanje skoka ravnoteže

Kako biste zadržali osjećaj realizma i težine igre, važno je uravnotežiti visinu i trajanje skoka. Previsok ili prekratak skok može negativno utjecati na igru. Eksperimentirajte s različitim visinama i trajanjima skoka kako biste pronašli pravu ravnotežu za svoju igru.

Uzmite u obzir fiziku igre, sposobnosti likova i cjelokupni dizajn razine pri određivanju odgovarajuće mehanike skoka.

Pružite vizualne i audio povratne informacije

Vizualna i audio povratna informacija presudna je kako bi skokovi bili brzi i zadovoljavajući. Koristite animacije ili efekte čestica da biste prikazali igračevo skakanje i doskok.

Osim toga, razmotrite dodavanje zvučnih efekata ili glazbe u pozadini koji poboljšava iskustvo skakanja. Ti vizualni i audio znakovi doprinose uživljavanju i angažmanu igrača.

Fino podešavanje detekcije sudara

Precizno otkrivanje sudara između igrača i platformi ključno je za preciznu i pouzdanu mehaniku skakanja. Osigurajte da je algoritam za otkrivanje sudara robustan i da ispravno obrađuje različite scenarije, kao što je slijetanje na platformu, sudar s preprekama ili klizanje duž zidova.

Testirajte i ponovite svoj kod za otkrivanje sudara kako biste eliminirali sve greške ili nedosljednosti koje mogu utjecati na mehaniku skakanja.

Učinite igre zabavnijim uz mehaniku skakanja

Dodavanje mehanike skakanja može uvelike povećati angažman i užitak u igri. Otvara nove mogućnosti za dizajn razina, zagonetke i izazovne prepreke. Implementacijom različitih mehanika skokova u Pythonovoj biblioteci arkadnih igara, možete stvoriti zadivljujuće platformske igre koje će igrače zabavljati satima.

Zapamtite, eksperimentiranje s različitim mehanikama skokova i uključivanje jedinstvenih značajki može izdvojiti vašu igru ​​i učiniti je nezaboravnim iskustvom za igrače.