Obvladajte izvajanje mehanike skokov v tem preprostem vodniku. Skočimo vanj!

Mehanika skakanja je temeljni vidik mnogih platformskih iger, ki igralcem omogoča premagovanje ovir, doseganje višjih platform in igranju dodajo dodatno plast interaktivnosti.

V Godotu, priljubljenem odprtokodnem igralnem mehanizmu, je implementacija mehanike skakanja razmeroma enostavna in lahko močno poveča angažiranost in užitek v vaši igri.

Nastavitev igre Godot

Preden se poglobite v izvajanje mehanike skokov, nastavite osnovno strukturo svoje igre Godot. Začnite z ustvarjanjem novega 2D projekta v Godotu. V prizorišču ustvarite a KinematicBody2D vozlišče kot igralčev lik. Priložite a CollisionShape2D igralcu, njegovo obliko pa določite z a RectangleShape2D.

Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.

Poleg tega vključite a Sprite2D za vizualno predstavitev igralca. Ustvarite nekaj vodoravnih in navpičnih ploščadi z uporabo Statično telo2D v prizorišču igre, da zagotovi kontekst za mehaniko skokov.

instagram viewer

Dodajte kodo, ki bo igralcu omogočila premikanje levo in desno. Vključite tudi gravitacijo za realistično gibanje. Tukaj je primer izrezka kode GDScript za začetek:

 razširi KinematicBody2Dconst GRAVITY = 800const MOVE_SPEED = 200var hitrost = Vector2.ZEROfunc _physics_process (delta): var input_vector = Vector2.ZERO if Input.is_action_pressed("move_right"): input_vector.x += 1 if Input.is_action_pressed("move_left"): input_vector.x -= 1 velocity.y += GRAVITY * delta velocity = move_and_slide (velocity, Vector2(0, -1)) velocity.x = input_vector.x * MOVE_SPEED

Uporabite stavke if-else za določitev vodoravnega gibanja igralca. Če igralec pritisne premakni desno, dodajte 1 k vhodni_vektor.x. Če igralec pritisne premakni levo, odštejte 1 od vhodni_vektor.x. Ta pristop omogoča bolj tekoč nadzor gibanja in odpravlja morebitne konflikte, ko sta oba dejanja pritisnjena hkrati.

Integrirajte Simple Jump

Zdaj svojemu predvajalniku dodajte osnovno funkcijo skoka. Igralec mora imeti možnost skakanja le, ko je na ploščadi. Obstoječemu skriptu dodajte naslednjo kodo:

 const JUMP_FORCE = -400var is_on_floor = falsefunc _physics_process (delta):... is_on_floor = is_on_floor() if is_on_floor and Input.is_action_just_pressed("jump"): velocity.y = JUMP_FORCE

S to kodo preverite, ali je igralec na platformi, ki uporablja is_on_floor() funkcijo. Ko igralec pritisne skok dejanje, nastavite navpično hitrost na vrednost sile skoka, kar povzroči, da igralec skoči.

Integrirajte dvojni skok

Če želite svoji mehaniki skakanja dodati več vsestranskosti, implementirajte funkcijo dvojnega skoka. Igralec bo lahko izvedel drugi skok v zraku, kar mu bo omogočilo, da doseže še višje platforme. Tukaj je primer izvedbe:

 const MAX_JUMP_COUNT = 3var jump_count = 0func _physics_process (delta):... is_on_floor = is_on_floor() if is_on_floor: jump_count = 0 var is_jumping = Input.is_action_just_pressed("jump") if is_on_floor in is_jumping: velocity.y = JUMP_FORCE jump_count += 1, če jump_count < MAX_JUMP_COUNT in is_jumping: velocity.y = JUMP_FORCE jump_count += 1

Predstavite a skok_štetje spremenljivka za sledenje številu skokov, ki jih je izvedel igralec. The MAX_JUMP_COUNT konstanta določa največje dovoljeno število skokov. Igralec lahko izvede drugi skok samo, če je še vedno znotraj največjega števila skokov.

Integrirajte Jump Dash

Če želite narediti mehaniko skakanja bolj razburljivo, implementirajte funkcijo jump dash. Ta funkcija bo igralcu omogočila hitro vodoravno premikanje v zraku, kar mu bo omogočilo okretno krmarjenje skozi ovire. Tukaj je primer izvedbe:

 const DASH_FORCE = 4000var can_dash = truefunc _physics_process (delta):... is_on_floor = is_on_floor() if is_on_floor: jump_count = 0 can_dash = true var is_jumping = Input.is_action_just_pressed("jump") var dash = Input.is_action_just_pressed("dash") if is_on_floor and is_jumping: velocity.y = JUMP_FORCE jump_count += 1 če jump_count < MAX_JUMP_COUNT in is_jumping: velocity.y = JUMP_FORCE jump_count += 1 če can_dash in dash: velocity.x += DASH_FORCE can_dash = lažno

Predstavite a can_dash spremenljivka za spremljanje, ali lahko igralec izvede zalet. Ko igralec pritisne pomišljaj dejanje, dodajte vodoravno silo (DASH_FORCE) na igralčevo hitrost, kar mu omogoča vodoravno skok v zraku.

Vključno z dodatnimi funkcijami

Poleg osnovne mehanike skakanja lahko svojo igro dodatno izboljšate z vključitvijo različnih funkcij. Ti lahko vključujejo uporabo skakalnih blazinic ali vzmeti za okrepljene skoke, uvedbo moči, ki spremenite vedenje skokov ali dodajte vizualne učinke, kot so sistemi delcev za bolj dinamično skakanje izkušnje.

Skakalne blazinice ali vzmeti

Če želite implementirati skakalne blazine ali vzmeti, ki zagotavljajo okrepljene skoke, lahko svoji igralni sceni dodate določene predmete in zaznate, kdaj igralec trči vanje. Tukaj je primer izvedbe:

 const JUMP_PAD_FORCE = -800func _on_JumpPad_body_entered (body): if body == $Player: velocity.y = JUMP_PAD_FORCE

V tej kodi je JumpPad je predmet trka, postavljen v prizorišče igre, in Igralec je ime vozlišča igralčevega lika. Ko igralec trči s skakalno ploščo, ta sproži okrepljen skok z uporabo višje navpične sile na igralca.

Okrepitve in posebne sposobnosti

Uvedete lahko okrepitve ali posebne sposobnosti, ki spremenijo vedenje mehanike skokov. Ustvarite lahko na primer moč, ki igralcu omogoči izvedbo trojnega skoka. Tukaj je primer izvedbe:

 const MAX_JUMP_COUNT = 4func _physics_process (delta):... if is_on_floor: jump_count = 0 if is_on_floor and is_jumping: velocity.y = JUMP_FORCE jump_count += 1 če jump_count < MAX_JUMP_COUNT in is_jumping: velocity.y = JUMP_FORCE jump_count += 1

V tej kodi je MAX_JUMP_COUNT konstanta je nastavljena na 4, kar omogoča igralcu, da izvede do tri zaporedne skoke, ko je aktiviran vklop.

Vizualni učinki

Da bo skakanje bolj vizualno privlačno, lahko dodate sisteme delcev ali druge vizualne učinke. Ustvarite lahko na primer sistem delcev, ki oddaja delce, ko igralec skoči. Tukaj je primer izvedbe:

 var jump_particles = preload("res://JumpParticles.tscn")func _physics_process (delta):... if is_on_floor and Input.is_action_just_pressed("jump"): velocity.y = JUMP_FORCE jump_particles.instance()

V tej kodi je JumpParticles.tscn je prizor, ki vsebuje vozlišče sistema delcev. Ko igralec skoči, se ustvari primerek sistema delcev, kar ima za posledico oddajanje vizualno privlačnih delcev.

Najboljše prakse za mehaniko skokov

Pri izvajanju mehanike skokov v Igralni motor Godot, je pomembno upoštevati nekaj najboljših praks:

  • Natančno nastavite vrednosti za gravitacijo, silo skoka, silo udarca in druge parametre, da dosežete zadovoljiv občutek igranja. Eksperimentiranje in ponavljanje sta ključnega pomena za iskanje pravega ravnovesja.
  • Preizkusite in ponovite mehaniko skakanja, da zagotovite, da je odzivna, intuitivna in uravnotežena. Pridobite povratne informacije od preizkuševalcev iger, da izboljšate mehaniko in opravite potrebne prilagoditve.
  • Izvedite pravilno zaznavanje trkov, da preprečite nenamerno vedenje in zagotovite, da igralec pravilno komunicira s platformami. Za natančno reševanje trkov uporabite Godotov sistem trkov in ustrezne plasti trkov.
  • Razmislite dodajanje glasbe brez avtorskih pravic ali animacije za izboljšanje igralčevega razumevanja dejanj skakanja njihovega lika. Animacije za skakanje, hitenje in druga sorodna dejanja lahko zagotovijo vizualne namige, ki izboljšajo celotno izkušnjo igralca.

Naredite igre bolj privlačne z Jump Mechanics

Če v svojo igro Godot vključite mehaniko skakanja, lahko znatno povečate njeno angažiranost in užitek. Skakanje omogoča igralcem krmarjenje po zapletenih okoljih, premagovanje ovir in odkrivanje novih področij.

Dodaja element spretnosti in natančnosti ter ponuja občutek dosežka, če se izvaja pravilno. Poleg tega s kombiniranjem mehanike skakanja z drugimi elementi igre, kot so uganke, sovražniki ali zbirateljskih predmetov, lahko ustvarite edinstvene in zahtevne igralne izkušnje, ki potopijo igralce in zabaval.