Většina plošinových her používá nějaký typ skoku, s variacemi včetně dvojitého skoku a skoku s proměnnou výškou. Objevte techniky za těmito pohyby.

Mechanika skákání hraje zásadní roli při vylepšování herního zážitku z plošinovky. Implementací různých skákacích mechanik pomocí Python's Arcade Library můžete do svých her přidat hloubku a vzrušení.

Knihovna Arcade poskytuje intuitivní a snadno použitelný rámec pro vytváření her, takže je ideální volbou pro vytvoření vaší plošinovky.

Vytvořte jednoduchou hru

Před začátkem, nainstalujte pip do svého zařízení a použijte tento příkaz k instalaci pasáž modul:

pip instalační arkáda

Chcete-li prozkoumat, jak fungují skákací mechaniky, začněte vytvořením jednoduché hry, kde se hráč může pohybovat doleva a doprava pomocí gravitace a statické plošiny.

Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.

Ve hře se hráč srazí s plošinou a postaví se na ni. Vytvořte nový soubor s názvem jednoduchá hra.py a přidejte níže uvedený kód:

instagram viewer
import pasáž

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

třídaGameWindow(pasáž. Okno):
def__init__(já):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mechanika skákání")
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(já):
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
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

-li self.player_y < dist:
self.player_y = dist
self.player_dy = 0

hra = GameWindow()
arcade.run()

Když spustíte program, uvidíte, že předmět přehrávače rychle spadne na platformu a zůstane na ní spočívat.

Přidání funkce jednoduchého skoku

Nyní do hry přidejte jednoduchou funkci skoku. Zkontrolujte kolizi mezi přehrávačem a plošinou a spustit skokovou akci, když hráč stiskne klávesu se šipkou nahoru. Chcete-li toho dosáhnout, vytvořte nový soubor s názvem skok.py a kód s níže uvedenými aktualizacemi:

třídaGameWindow(pasáž. Okno):
def__init__(já):
# ...

defon_key_press(vlastní, klíč, modifikátory):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

-li klíč == arcade.key. NAHORU 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
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

-li self.player_y < dist:
self.player_y = dist
self.player_dy = 0
self.jump_count = 0

Přidání funkce dvojitého skoku

Chcete-li přidat funkci dvojitého skoku, rozšiřte stávající logiku skoku. Když je hráč na plošině a poprvé stiskne klávesu se šipkou nahoru, provede pravidelný skok. Pokud však ve vzduchu znovu stisknou klávesu se šipkou nahoru, hráč provede dvojitý skok.

Vytvořte nový soubor s názvem dvojitý skok.py a kód s níže uvedenými aktualizacemi:

třídaGameWindow(pasáž. Okno):
def__init__(já):
self.jump_count = 0# Sledujte počet skoků

defon_key_press(vlastní, klíč, modifikátory):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

-li klíč == arcade.key. NAHORU:
-li self.player_y == on_ground nebo self.jump_count < 2:
self.player_dy = 10
self.jump_count += 1

Včetně dalších funkcí

Kromě jednoduchých a dvojitých skoků existuje mnoho funkcí, které můžete přidat, abyste vylepšili mechaniku skákání ve své hře.

Implementace proměnné výšky skoku

Pokud umožníte hráči ovládat výšku svých skoků na základě toho, jak dlouho drží tlačítko skoku, můžete do hry přidat více kontroly a strategie. Zde je příklad toho, jak můžete implementovat proměnnou výšku skoku. Vytvořte nový soubor s názvem variabilní-skok.py a kód s níže uvedenými aktualizacemi:

GRAVITA = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100

třídaGameWindow(pasáž. Okno):
def__init__(já):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mechanika skákání")
self.jump_pressed = Nepravdivé
self.jump_power = 0

defon_key_press(vlastní, klíč, modifikátory):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

-li klíč == arcade.key. NAHORU a self.player_y == on_ground:
self.jump_pressed = Skutečný

defon_key_release(vlastní, klíč, modifikátory):
-li klíč == arcade.key. NAHORU:
self.jump_pressed = Nepravdivé

defupdate_jump_power(já):
# Zvyšte sílu skoku při držení tlačítka skoku
-li self.jump_pressed:
self.jump_power += JUMP_POWER_INCREMENT

-li self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
jiný:
-li self.jump_power > 0:
self.jump_power -= 1

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

-li 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()

Implementace funkce Air Dash

Přidání mechaniky air dash může hráči poskytnout další možnosti mobility ve vzduchu. Vytvořte nový soubor s názvem air-dash.py a kód s níže uvedenými aktualizacemi:

AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2

třídaGameWindow(pasáž. Okno):
def__init__(já):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mechanika skákání")
self.on_ground = Nepravdivé
self.air_dashes = 0
self.can_air_dash = Skutečný

defon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. NAHORU a self.on_ground:
self.player_dy = 10
elif klíč == arcade.key. NAHORU a \
self.air_dashes < MAX_AIR_DASHES a \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
self.air_dashes += 1
self.can_air_dash = Nepravdivé

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

dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

-li self.player_y <= dist:
self.player_y = dist
self.player_dy = 0
self.on_ground = Skutečný
jiný:
self.on_ground = Nepravdivé

self.player_x += self.player_dx

-li 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

-li self.on_ground:
self.air_dashes = 0
self.can_air_dash = Skutečný

Když provedete air dash, vaše hráčská postava se přesune daleko od plošiny:

Nejlepší postupy pro mechaniku skákání

Implementace skákacích mechanik ve hře vyžaduje pečlivé zvážení, aby byl zajištěn hladký a příjemný herní zážitek. Zde je několik doporučených postupů, které je třeba mít na paměti:

Vyvažte výšku a trvání skoku

Pro zachování pocitu realismu a obtížnosti hry je důležité vyvážit výšku a dobu trvání skoku. Příliš vysoký nebo příliš krátký skok může negativně ovlivnit hru. Experimentujte s různými výškami a trváními skoků, abyste našli správnou rovnováhu pro vaši hru.

Při určování vhodné mechaniky skoků zvažte fyziku hry, schopnosti postav a celkový design úrovní.

Poskytujte vizuální a zvukovou zpětnou vazbu

Vizuální a zvuková zpětná vazba je zásadní pro to, aby skoky byly citlivé a uspokojivé. Pomocí animací nebo částicových efektů znázorněte skákací pohyb a přistání hráče.

Navíc zvažte přidání zvukových efektů nebo hudby na pozadí což umocňuje zážitek ze skákání. Tyto vizuální a zvukové podněty přispívají k ponoření a zapojení hráčů.

Fine-Tune Collision Detection

Přesná detekce kolize mezi hráčem a platformami je nezbytná pro přesnou a spolehlivou mechaniku skákání. Ujistěte se, že algoritmus detekce kolize je robustní a správně zvládá různé scénáře, jako je přistání na plošině, kolize s překážkami nebo klouzání po stěnách.

Testujte a opakujte svůj kód detekce kolize, abyste odstranili jakékoli závady nebo nekonzistence, které mohou ovlivnit mechaniku skákání.

Udělejte si hry zábavnější pomocí skákací mechaniky

Přidání skákací mechaniky může výrazně zlepšit zapojení a požitek ze hry. Otevírá nové možnosti pro level design, hádanky a náročné překážky. Implementací různých mechanik skoků v Python's Arcade Game Library můžete vytvářet strhující plošinovky, které hráče zabaví na celé hodiny.

Pamatujte, že experimentování s různými mechanikami skoků a začleněním jedinečných funkcí může vaši hru odlišit a udělat z ní pohlcující a nezapomenutelný zážitek pro hráče.