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:
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. ZELENOrazredaGameWindow(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 // 4defizvlač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 / 2ako 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 / 2ako 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 skokovadefna_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 = 100razredaGameWindow(arkada. Prozor):
def__u tome__(sebe):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mehanika skakanja")
self.jump_pressed = lažno
self.jump_power = 0defna_pritisak_tipke(ja, ključ, modifikatori):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2ako ključ == arkada.ključ. GORE i self.player_y == on_ground:
self.jump_pressed = Pravidefna_puštanje_ključa(ja, ključ, modifikatori):
ako ključ == arkada.ključ. GORE:
self.jump_pressed = lažnodefupdate_jump_power(sebe):
# Povećajte snagu skoka dok držite tipku za skok
ako self.jump_pressed:
self.jump_power += SKOK_POWER_INCREMENTako self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
drugo:
ako self.jump_power > 0:
samo.snaga_skoka -= 1defna_ažuriranju(sam, delta_vrijeme):
self.player_dy -= GRAVITACIJA
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2ako 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 = 2razredaGameWindow(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 = Pravidefna_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žnodefna_ažuriranju(sam, delta_vrijeme):
self.player_dy -= GRAVITACIJA
self.player_y += self.player_dydist = 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žnoself.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.