Väčšina plošinových hier používa nejaký typ skoku s variáciami vrátane dvojitého skoku a skoku s premennou výškou. Objavte techniky za týmito pohybmi.

Mechanika skákania hrá kľúčovú úlohu pri zlepšovaní herného zážitku z plošinovky. Implementáciou rôznych mechanizmov skákania pomocou knižnice Arcade Library v Pythone môžete svojim hrám pridať hĺbku a vzrušenie.

Knižnica Arcade poskytuje intuitívny a ľahko použiteľný rámec na vytváranie hier, vďaka čomu je ideálnou voľbou na vytvorenie vašej plošinovky.

Vytvorte jednoduchú hru

Pred spustením nainštalujte pip do svojho zariadenia a použite tento príkaz na inštaláciu pasáž modul:

arkáda na inštaláciu pipu

Ak chcete preskúmať, ako fungujú mechanizmy skákania, začnite vytvorením jednoduchej hry, v ktorej sa hráč môže pohybovať doľava a doprava pomocou gravitácie a statickej plošiny.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

V hre sa hráč zrazí s plošinou a postaví sa na ňu. Vytvorte nový súbor s názvom jednoduchá hra.py a pridajte nižšie uvedený kód:

instagram viewer
importovať pasáž

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLAYER_RADIUS = 20
PLATFORM_WIDTH = 200
PLATFORM_HEIGHT = 20
GRAVITA = 0.5
modrá = arkáda.farba. MODRÁ
zelená = arkáda.farba. ZELENÁ

triedaGameWindow(arkáda. okno):
def__init__(ja):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mechanika 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 // 4

defon_draw(ja):
arcade.start_render()

arcade.draw_circle_filled (self.player_x, self.player_y,
PLAYER_RADIUS, modrá)

arcade.draw_rectangle_filled (self.platform_x, self.platform_y,
PLATFORM_WIDTH, PLATFORM_HEIGHT, zelená)

defon_update(self, delta_time):
self.player_dy -= GRAVITA
self.player_y += self.player_dy
vzdialenosť = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

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

hra = GameWindow()
arcade.run()

Keď spustíte program, uvidíte, že objekt hráča rýchlo spadne na platformu a potom zostane na nej ležať.

Pridanie funkcie jednoduchého skoku

Teraz pridajte do hry jednoduchú funkciu skokov. Skontrolujte kolíziu medzi prehrávačom a plošinou a spustí skokovú akciu, keď hráč stlačí kláves so šípkou nahor. Aby ste to dosiahli, vytvorte nový súbor s názvom skok.py a kód s nižšie uvedenými aktualizáciami:

triedaGameWindow(arkáda. okno):
def__init__(ja):
# ...

defon_key_press(ja, kľúč, modifikátory):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ak kľúč == arcade.key. HORE a self.player_y == on_ground:
self.player_dy = 10

defon_update(self, delta_time):
self.player_dy -= GRAVITA
self.player_y += self.player_dy
vzdialenosť = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ak self.player_y < dist:
self.player_y = dist
self.player_dy = 0
self.pocet_skokov = 0

Pridanie funkcie dvojitého skoku

Ak chcete pridať funkciu dvojitého skoku, rozšírte existujúcu logiku skoku. Keď je hráč na plošine a prvýkrát stlačí kláves so šípkou nahor, vykoná bežný skok. Ak však vo vzduchu znova stlačia kláves so šípkou nahor, hráč vykoná dvojitý skok.

Vytvorte nový súbor s názvom dvojskok.py a kód s nižšie uvedenými aktualizáciami:

triedaGameWindow(arkáda. okno):
def__init__(ja):
self.pocet_skokov = 0# Sledujte počet skokov

defon_key_press(ja, kľúč, modifikátory):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ak kľúč == arcade.key. HORE:
ak self.player_y == on_ground alebo self.pocet_skokov < 2:
self.player_dy = 10
self.pocet_skokov += 1

Vrátane ďalších funkcií

Okrem jednoduchých a dvojitých skokov existuje mnoho funkcií, ktoré môžete pridať na vylepšenie mechaniky skokov vo vašej hre.

Implementácia variabilnej výšky skoku

Umožnenie hráčovi ovládať výšku svojich skokov na základe toho, ako dlho drží tlačidlo skoku, môže pridať viac kontroly a stratégie do hry. Tu je príklad toho, ako môžete implementovať variabilnú výšku skoku. Vytvorte nový súbor s názvom variabilný-skok.py a kód s nižšie uvedenými aktualizáciami:

GRAVITA = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100

triedaGameWindow(arkáda. okno):
def__init__(ja):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mechanika skokov")
self.skok_stlačený = Nepravdivé
self.jump_power = 0

defon_key_press(ja, kľúč, modifikátory):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ak kľúč == arcade.key. HORE a self.player_y == on_ground:
self.skok_stlačený = Pravda

defon_key_release(ja, kľúč, modifikátory):
ak kľúč == arcade.key. HORE:
self.skok_stlačený = Nepravdivé

defupdate_jump_power(ja):
# Zvýšte silu skoku, kým držíte tlačidlo skoku
ak self.jump_pressed:
self.jump_power += JUMP_POWER_INCREMENT

ak self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
inak:
ak self.jump_power > 0:
self.jump_power -= 1

defon_update(self, delta_time):
self.player_dy -= GRAVITA
vzdialenosť = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ak self.player_y == dist a self.jump_power > 0:
self.player_dy = self.jump_power

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

Implementácia funkcie Air Dash

Pridanie mechaniky air dash môže poskytnúť hráčovi ďalšie možnosti mobility vo vzduchu. Vytvorte nový súbor s názvom air-dash.py a kód s nižšie uvedenými aktualizáciami:

AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2

triedaGameWindow(arkáda. okno):
def__init__(ja):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mechanika skokov")
self.on_ground = Nepravdivé
self.air_dashes = 0
self.can_air_dash = Pravda

defon_key_press(ja, kľúč, modifikátory):
ak kľúč == arcade.key. HORE a self.on_ground:
self.player_dy = 10
elif kľúč == arcade.key. HORE a \
self.air_dashes < MAX_AIR_DASHES a \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
self.air_pomlčky += 1
self.can_air_dash = Nepravdivé

defon_update(self, delta_time):
self.player_dy -= GRAVITA
self.player_y += self.player_dy

vzdialenosť = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ak self.player_y <= dist:
self.player_y = dist
self.player_dy = 0
self.on_ground = Pravda
inak:
self.on_ground = Nepravdivé

self.player_x += self.player_dx

ak 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

ak self.on_ground:
self.air_dashes = 0
self.can_air_dash = Pravda

Keď vykonáte air dash, vaša hráčska postava sa presunie ďaleko od platformy:

Osvedčené postupy pre mechaniku skokov

Implementácia skákacích mechanizmov v hre si vyžaduje starostlivé zváženie, aby ste zaistili hladký a príjemný herný zážitok. Tu je niekoľko osvedčených postupov, ktoré treba mať na pamäti:

Vyvážte výšku a trvanie skoku

Pre zachovanie pocitu realizmu a náročnosti hry je dôležité vyvážiť výšku a trvanie skoku. Príliš vysoký alebo príliš krátky skok môže negatívne ovplyvniť hru. Experimentujte s rôznymi výškami a trvaním skokov, aby ste našli správnu rovnováhu pre svoju hru.

Pri určovaní vhodnej mechaniky skokov zvážte fyziku hry, schopnosti postáv a celkový dizajn úrovní.

Poskytnite vizuálnu a zvukovú spätnú väzbu

Vizuálna a zvuková spätná väzba je rozhodujúca pre to, aby skoky boli citlivé a uspokojivé. Použite animácie alebo časticové efekty na zobrazenie hráčovho skákacieho pohybu a pristátia.

Okrem toho zvážte pridanie zvukových efektov alebo hudby na pozadí čo umocňuje zážitok zo skákania. Tieto vizuálne a zvukové podnety prispievajú k ponoreniu a zaangažovaniu hráčov.

Jemné doladenie detekcie kolízie

Presná detekcia kolízií medzi prehrávačom a platformami je nevyhnutná pre presnú a spoľahlivú mechaniku skákania. Uistite sa, že algoritmus detekcie kolízie je robustný a správne zvláda rôzne scenáre, ako je pristátie na plošine, kolízia s prekážkami alebo kĺzanie po stenách.

Otestujte a iterujte svoj kód detekcie kolízie, aby ste odstránili akékoľvek chyby alebo nezrovnalosti, ktoré môžu ovplyvniť mechaniku skokov.

Urobte z hier väčšiu zábavu vďaka skákacej mechanike

Pridanie skákacej mechaniky môže výrazne zvýšiť zapojenie a pôžitok z hry. Otvára nové možnosti pre dizajn úrovní, hádanky a náročné prekážky. Implementáciou rôznych mechanizmov skokov do knižnice Arcade Game Library v Pythone môžete vytvárať strhujúce plošinovky, ktoré hráčov zabavia na celé hodiny.

Pamätajte, že experimentovanie s rôznymi mechanikami skokov a začlenenie jedinečných funkcií môže vašu hru odlíšiť a urobiť z nej pre hráčov pohlcujúci a nezabudnuteľný zážitok.