Večina platformskih iger uporablja neko vrsto skoka, z različicami, vključno z dvojnim skokom in skokom s spremenljivo višino. Odkrijte tehnike, ki stojijo za temi potezami.
Mehanika skakanja igra ključno vlogo pri izboljšanju igralne izkušnje platformske igre. Z implementacijo različnih mehanik skakanja s Pythonovo arkadno knjižnico lahko svojim igram dodate globino in razburjenje.
Knjižnica Arcade ponuja intuitivno in za uporabo preprosto ogrodje za ustvarjanje iger, zaradi česar je idealna izbira za ustvarjanje vaše platforme.
Ustvari preprosto igro
Pred začetkom, namestite pip na svojo napravo in uporabite ta ukaz za namestitev arkada modul:
pip install arkada
Če želite raziskati, kako deluje mehanika skokov, začnite z ustvarjanjem preproste igre, kjer se lahko igralec premika levo in desno z gravitacijo in statično platformo.
Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.
V igri bo igralec trčil v platformo in stal na njej. Ustvari novo datoteko z imenom simple-game.py in dodajte spodnjo kodo:
uvoz arkada
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLAYER_RADIUS = 20
PLATFORM_WIDTH = 200
PLATFORM_HEIGHT = 20
GRAVITACIJA = 0.5
modra = arkadna.barva. MODRA
zelena = arkadna.barva. ZELENArazredGameWindow(arkadne. okno):
def__v__(sebe):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mehanika skokov")
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(sebe):
arcade.start_render()arcade.draw_circle_filled (self.player_x, self.player_y,
PLAYER_RADIUS, modra)arcade.draw_rectangle_filled (self.platform_x, self.platform_y,
PLATFORM_WIDTH, PLATFORM_HEIGHT, zelena)defon_update(sam, delta_time):
self.player_dy -= GRAVITACIJA
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2če self.player_y < dist:
self.player_y = dist
self.player_dy = 0
igra = GameWindow()
arcade.run()
Ko zaženete program, boste videli, kako predmet igralca hitro pade na ploščad in nato ostane na njej.
Dodajanje funkcije preprostega skoka
Zdaj igri dodajte preprosto funkcijo skoka. Preverite kolizijo med igralcem in platformo in sproži skakanje, ko igralec pritisne puščično tipko navzgor. Če želite to doseči, ustvarite novo datoteko z imenom jump.py in kodo s spodnjimi posodobitvami:
razredGameWindow(arkadne. okno):
def__v__(sebe):
# ...defna_pritisk_tipke(jaz, ključ, modifikatorji):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2če ključ == arcade.key. GOR in self.player_y == on_ground:
self.player_dy = 10
defon_update(sam, delta_time):
self.player_dy -= GRAVITACIJA
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2
če self.player_y < dist:
self.player_y = dist
self.player_dy = 0
self.jump_count = 0
Dodajanje funkcije dvojnega skoka
Če želite dodati funkcijo dvojnega skoka, razširite obstoječo logiko skoka. Ko je igralec na platformi in prvič pritisne tipko s puščico navzgor, bo izvedel običajni skok. Če pa ponovno pritisne tipko s puščico navzgor, ko je v zraku, bo igralec izvedel dvojni skok.
Ustvari novo datoteko z imenom dvojni skok.py in kodo s spodnjimi posodobitvami:
razredGameWindow(arkadne. okno):
def__v__(sebe):
self.jump_count = 0# Spremljajte število skokovdefna_pritisk_tipke(jaz, ključ, modifikatorji):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2
če ključ == arcade.key. GOR:
če self.player_y == on_ground oz self.jump_count < 2:
self.player_dy = 10
self.jump_count += 1
Vključno z dodatnimi funkcijami
Poleg preprostih in dvojnih skokov lahko dodate številne funkcije za izboljšanje mehanike skokov v igri.
Implementacija spremenljive višine skoka
Če igralcu dovolite, da nadzira višino svojih skokov glede na to, kako dolgo drži gumb za skok, lahko igranju doda več nadzora in strategije. Tukaj je primer, kako lahko implementirate spremenljivo višino skoka. Ustvari novo datoteko z imenom spremenljivka-jump.py in kodo s spodnjimi posodobitvami:
GRAVITACIJA = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100razredGameWindow(arkadne. okno):
def__v__(sebe):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mehanika skokov")
self.jump_pressed = False
self.jump_power = 0defna_pritisk_tipke(jaz, ključ, modifikatorji):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2če ključ == arcade.key. GOR in self.player_y == on_ground:
self.jump_pressed = Pravdefon_key_release(jaz, ključ, modifikatorji):
če ključ == arcade.key. GOR:
self.jump_pressed = Falsedefupdate_jump_power(sebe):
# Povečajte moč skoka, medtem ko držite gumb za skok
če self.jump_pressed:
self.jump_power += JUMP_POWER_INCREMENTče self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
drugače:
če self.jump_power > 0:
self.jump_power -= 1defon_update(sam, delta_time):
self.player_dy -= GRAVITACIJA
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2če self.player_y == dist in self.jump_power > 0:
self.player_dy = self.jump_power
self.player_y += self.player_dy
self.update_jump_power()
Implementacija funkcije Air Dash
Dodajanje mehanika za zračni zalet lahko igralcu omogoči dodatne možnosti mobilnosti, medtem ko je v zraku. Ustvari novo datoteko z imenom air-dash.py in kodo s spodnjimi posodobitvami:
AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2razredGameWindow(arkadne. okno):
def__v__(sebe):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mehanika skokov")
self.on_ground = False
self.air_dashes = 0
self.can_air_dash = Pravdefna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. GOR in self.on_ground:
self.player_dy = 10
elif ključ == arcade.key. GOR in \
self.air_dashes < MAX_AIR_DASHES in \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
self.air_dashes += 1
self.can_air_dash = Falsedefon_update(sam, delta_time):
self.player_dy -= GRAVITACIJA
self.player_y += self.player_dydist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2
če self.player_y <= dist:
self.player_y = dist
self.player_dy = 0
self.on_ground = Prav
drugače:
self.on_ground = Falseself.player_x += self.player_dx
če 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
če self.on_ground:
self.air_dashes = 0
self.can_air_dash = Prav
Ko izvedete zračni zalet, se bo vaš lik igralca premaknil daleč stran od platforme:
Najboljše prakse za mehaniko skokov
Implementacija mehanike skakanja v igri zahteva skrben premislek, da zagotovite gladko in prijetno izkušnjo igranja. Tukaj je nekaj najboljših praks, ki jih morate upoštevati:
Višina in trajanje ravnotežnega skoka
Da ohranite občutek realizma in težavnosti igre, je pomembno uravnotežiti višino in trajanje skoka. Previsok ali prekratek skok lahko negativno vpliva na igranje. Eksperimentirajte z različnimi višinami in trajanji skokov, da najdete pravo ravnovesje za svojo igro.
Pri določanju ustrezne mehanike skoka upoštevajte fiziko igre, sposobnosti likov in splošno zasnovo ravni.
Zagotovite vizualne in zvočne povratne informacije
Vizualne in zvočne povratne informacije so ključnega pomena, da se skoki počutijo odzivno in zadovoljivo. Uporabite animacije ali učinke delcev, da prikažete igralčevo skakanje in pristanek.
Poleg tega upoštevajte dodajanje zvočnih učinkov ali glasbe v ozadju ki izboljša izkušnjo skakanja. Ti vizualni in zvočni znaki prispevajo k poglobitvi in angažiranosti igralcev.
Natančna nastavitev zaznavanja trčenja
Natančno zaznavanje trkov med igralcem in platformami je bistveno za natančno in zanesljivo mehaniko skakanja. Prepričajte se, da je algoritem za zaznavanje trka robusten in pravilno obravnava različne scenarije, kot je pristanek na ploščadi, trčenje z ovirami ali drsenje po stenah.
Preizkusite in ponovite svojo kodo za zaznavanje trkov, da odpravite morebitne napake ali nedoslednosti, ki lahko vplivajo na mehaniko skakanja.
Naredite igre bolj zabavne z mehaniko skokov
Dodatek mehanike skakanja lahko močno poveča angažiranost in užitek v igri. Odpira nove možnosti za načrtovanje ravni, uganke in zahtevne ovire. Z implementacijo različnih mehanik skokov v Pythonovo knjižnico arkadnih iger lahko ustvarite očarljive platformne igre, ki bodo igralce zabavale ure in ure.
Ne pozabite, da lahko eksperimentiranje z različnimi mehanikami skokov in vključevanjem edinstvenih funkcij izloči vašo igro in jo naredi privlačno in nepozabno doživetje za igralce.