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:
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 // 4defon_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 / 2ak 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 / 2ak 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 skokovdefon_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 = 100triedaGameWindow(arkáda. okno):
def__init__(ja):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mechanika skokov")
self.skok_stlačený = Nepravdivé
self.jump_power = 0defon_key_press(ja, kľúč, modifikátory):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2ak kľúč == arcade.key. HORE a self.player_y == on_ground:
self.skok_stlačený = Pravdadefon_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_INCREMENTak self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
inak:
ak self.jump_power > 0:
self.jump_power -= 1defon_update(self, delta_time):
self.player_dy -= GRAVITA
vzdialenosť = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2ak 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 = 2triedaGameWindow(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 = Pravdadefon_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_dyvzdialenosť = 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.