Lielākajā daļā platformas spēļu tiek izmantots noteikta veida lēciens ar variācijām, tostarp dubultlēcienu un mainīga augstuma lēcienu. Atklājiet šo kustību paņēmienus.

Lēkšanas mehānikai ir izšķiroša nozīme platformera spēles spēles pieredzes uzlabošanā. Ieviešot dažādas lēkšanas mehānikas ar Python Arcade bibliotēku, varat pievienot savām spēlēm dziļumu un aizrautību.

Arkādes bibliotēka nodrošina intuitīvu un viegli lietojamu sistēmu spēļu izveidei, padarot to par ideālu izvēli platformera izveidei.

Izveidojiet vienkāršu spēli

Pirms sākt, instalējiet pip savā ierīcē un izmantojiet šo komandu, lai instalētu arkāde modulis:

pip instalēšanas arkāde

Lai izpētītu, kā darbojas lēcienu mehānika, sāciet, izveidojot vienkāršu spēli, kurā spēlētājs var pārvietoties pa kreisi un pa labi ar gravitācijas spēku un statisku platformu.

Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

Spēlē spēlētājs saduras ar platformu un nostāsies tai virsū. Izveidojiet jaunu failu ar nosaukumu simple-game.py un pievienojiet zemāk esošo kodu:

instagram viewer
imports arkāde

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLAYER_RADIUS = 20
PLATFORM_WIDTH = 200
PLATFORM_AUGSTUMS = 20
GRAVITĀCIJA = 0.5
zils = arkāde.krāsa. ZILS
zaļš = arkāde.krāsa. ZAĻĀ

klasēGameWindow(pasāža. logs):
def__tajā__(pats):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Lēciena mehānika")
self.player_x = SCREEN_WIDTH // 2
self.player_y = EKRĀNA_AUGSTUMS // 2
self.player_dy = 0
self.platform_x = SCREEN_WIDTH // 2
self.platform_y = EKRĀNA_AUGSTUMS // 4

defon_draw(pats):
arcade.start_render()

arcade.draw_circle_filled (self.player_x, self.player_y,
PLAYER_RADIUS, zils)

arcade.draw_rectangle_filled (self.platform_x, self.platform_y,
PLATFORM_WIDTH, PLATFORM_HEIGHT, zaļa)

defon_update(self, delta_time):
self.player_dy -= GRAVITĀTE
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

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

spēle = GameWindow()
arcade.run()

Palaižot programmu, jūs redzēsiet, ka atskaņotāja objekts ātri nokrīt uz platformas un pēc tam paliks uz tā.

Vienkāršas lēciena funkcijas pievienošana

Tagad pievienojiet spēlei vienkāršu lēciena funkciju. Pārbaudiet sadursmi starp atskaņotāju un platformu un aktivizējiet lēcienu, kad spēlētājs nospiež augšupvērsto bulttaustiņu. Lai to panāktu, izveidojiet jaunu failu ar nosaukumu jump.py un kods ar tālāk norādītajiem atjauninājumiem:

klasēGameWindow(pasāža. logs):
def__tajā__(pats):
# ...

defon_key_press(pašs, atslēga, modifikatori):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ja taustiņš == arcade.key. UP un self.player_y == on_ground:
self.player_dy = 10

defon_update(self, delta_time):
self.player_dy -= GRAVITĀTE
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ja self.player_y < dist:
self.player_y = dist
self.player_dy = 0
self.jump_count = 0

Dubultlēkšanas funkcijas pievienošana

Lai pievienotu dubultā lēciena funkciju, paplašiniet esošo lēciena loģiku. Kad spēlētājs atrodas uz platformas un pirmo reizi nospiež augšupvērsto bulttaustiņu, viņš veiks regulāru lēcienu. Tomēr, ja viņi vēlreiz nospiež augšupvērsto bulttaustiņu, atrodoties gaisā, spēlētājs veiks dubultlēcienu.

Izveidojiet jaunu failu ar nosaukumu double-jump.py un kods ar tālāk norādītajiem atjauninājumiem:

klasēGameWindow(pasāža. logs):
def__tajā__(pats):
self.jump_count = 0# Izsekojiet lēcienu skaitu

defon_key_press(pašs, atslēga, modifikatori):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ja taustiņš == arcade.key. UP:
ja self.player_y == on_ground vai self.jump_count < 2:
self.player_dy = 10
self.jump_count += 1

Ieskaitot papildu funkcijas

Papildus vienkāršiem un dubultiem lēcieniem ir arī daudzas funkcijas, kuras varat pievienot, lai uzlabotu savas spēles lēcienu mehāniku.

Mainīga lēciena augstuma ieviešana

Ļaujot spēlētājam kontrolēt savu lēcienu augstumu, pamatojoties uz to, cik ilgi viņi tur lēciena pogu, var palielināt spēles vadību un stratēģiju. Šeit ir piemērs tam, kā varat ieviest mainīgu lēciena augstumu. Izveidojiet jaunu failu ar nosaukumu mainīgais-jump.py un kods ar tālāk norādītajiem atjauninājumiem:

GRAVITĀCIJA = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100

klasēGameWindow(pasāža. logs):
def__tajā__(pats):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Lēciena mehānika")
self.jump_pressed = Nepatiesi
self.jump_power = 0

defon_key_press(pašs, atslēga, modifikatori):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ja taustiņš == arcade.key. UP un self.player_y == on_ground:
self.jump_pressed = Taisnība

defon_key_release(pašs, atslēga, modifikatori):
ja taustiņš == arcade.key. UP:
self.jump_pressed = Nepatiesi

defupdate_jump_power(pats):
# Palieliniet lēciena jaudu, kamēr tiek turēta lēciena poga
ja self.jump_pressed:
self.jump_power += JUMP_POWER_INCREMENT

ja self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
cits:
ja self.jump_power > 0:
self.jump_power -= 1

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

ja self.player_y == dist un self.jump_power > 0:
self.player_dy = self.jump_power

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

Air Dash funkcijas ieviešana

Pievienojot gaisa paneļa mehāniķi, spēlētājs var nodrošināt papildu mobilitātes iespējas, atrodoties gaisā. Izveidojiet jaunu failu ar nosaukumu air-dash.py un kods ar tālāk norādītajiem atjauninājumiem:

AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2

klasēGameWindow(pasāža. logs):
def__tajā__(pats):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Lēciena mehānika")
self.on_ground = Nepatiesi
self.air_dashes = 0
self.can_air_dash = Taisnība

defon_key_press(pašs, atslēga, modifikatori):
ja taustiņš == arcade.key. UP un self.on_ground:
self.player_dy = 10
elifs taustiņš == arcade.key. UP un \
self.air_dashes < MAX_AIR_DASHES un \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
self.air_dashes += 1
self.can_air_dash = Nepatiesi

defon_update(self, delta_time):
self.player_dy -= GRAVITĀTE
self.player_y += self.player_dy

dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

ja self.player_y <= dist:
self.player_y = dist
self.player_dy = 0
self.on_ground = Taisnība
cits:
self.on_ground = Nepatiesi

self.player_x += self.player_dx

ja self.player_x < PLAYER_RADIUS:
self.player_x = PLAYER_RADIUS
self.player_dx = 0
elifs self.player_x > SCREEN_WIDTH — PLAYER_RADIUS:
self.player_x = SCREEN_WIDTH — PLAYER_RADIUS
self.player_dx = 0

ja self.on_ground:
self.air_dashes = 0
self.can_air_dash = Taisnība

Kad jūs izpildīsit gaisa triecienu, jūsu spēlētāja varonis attālināsies tālu no platformas:

Lēcienu mehānikas paraugprakse

Lēciena mehānikas ieviešana spēlē ir rūpīgi jāapsver, lai nodrošinātu vienmērīgu un patīkamu spēles pieredzi. Tālāk ir minētas dažas paraugprakses, kas jāpatur prātā.

Līdzsvara lēciena augstums un ilgums

Lai saglabātu reālisma sajūtu un spēles grūtības, ir svarīgi līdzsvarot lēciena augstumu un ilgumu. Pārāk augsts vai pārāk īss lēciens var negatīvi ietekmēt spēli. Eksperimentējiet ar dažādiem lēcienu augstumiem un ilgumiem, lai atrastu savai spēlei pareizo līdzsvaru.

Nosakot atbilstošo lēciena mehāniku, ņemiet vērā spēles fiziku, rakstura spējas un vispārējo līmeņa dizainu.

Sniedziet vizuālas un audio atsauksmes

Vizuālā un audio atgriezeniskā saite ir ļoti svarīga, lai lēcieni justos atsaucīgi un apmierinoši. Izmantojiet animācijas vai daļiņu efektus, lai attēlotu spēlētāja lēciena kustību un piezemēšanos.

Turklāt apsveriet skaņas efektu vai fona mūzikas pievienošana kas uzlabo lēkšanas pieredzi. Šie vizuālie un audio signāli veicina spēlētāju iedziļināšanos un iesaistīšanos.

Precīzi noregulējiet sadursmes atklāšanu

Precīza sadursmes noteikšana starp atskaņotāju un platformām ir būtiska precīzai un uzticamai lēciena mehānikai. Pārliecinieties, ka sadursmes noteikšanas algoritms ir izturīgs un pareizi risina dažādus scenārijus, piemēram, nolaišanos uz platformas, sadursmi ar šķēršļiem vai slīdēšanu gar sienām.

Pārbaudiet un atkārtojiet sadursmes noteikšanas kodu, lai novērstu jebkādas kļūmes vai neatbilstības, kas var ietekmēt lēcienu mehāniku.

Padariet spēles jautrākas, izmantojot lēcienu mehāniku

Lēcienu mehānikas pievienošana var ievērojami uzlabot spēles iesaistīšanos un baudījumu. Tas paver jaunas iespējas līmeņa dizainam, mīklām un sarežģītiem šķēršļiem. Ieviešot dažādas lēcienu mehānikas Python arkādes spēļu bibliotēkā, varat izveidot aizraujošas platformera spēles, kas ļauj spēlētājiem izklaidēties stundām ilgi.

Atcerieties, ka eksperimentēšana ar dažādu lēcienu mehāniku un unikālu funkciju iekļaušana var atšķirt jūsu spēli un padarīt to par aizraujošu un neaizmirstamu pieredzi spēlētājiem.