Õppige selles lihtsas juhendis hüppemehaanika rakendamist. Hüppame sellesse!

Hüppemehaanika on paljude platvormimängude põhiaspekt, mis võimaldab mängijatel liikuda takistustel, jõuda kõrgematele platvormidele ja lisada mängule täiendava interaktiivsuse kihi.

Populaarses avatud lähtekoodiga mängumootoris Godot on hüppemehaanika rakendamine suhteliselt lihtne ja võib teie mängu kaasatust ja naudingut oluliselt suurendada.

Godot' mängu seadistamine

Enne hüppemehaanika juurutamist seadke paika oma Godoti mängu põhistruktuur. Alustage Godotis uue 2D projekti loomisega. Stseenis loo a KinematicBody2D sõlm kui mängija tegelane. Kinnitage a Kokkupõrkekuju2D mängijale, määratledes selle kuju a-ga Ristkülikukuju2D.

Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.

Lisaks lisage a Sprite2D mängijat visuaalselt esindama. Looge mõned horisontaalsed ja vertikaalsed platvormid, kasutades StaticBody2D mängustseenis, et pakkuda hüppemehaanika konteksti.

Lisage kood, mis võimaldab mängijal vasakule ja paremale liikuda. Kaasake ka gravitatsioon realistliku liikumise jaoks. Alustuseks on siin GDScripti koodilõigu näide:

 pikendab KinematicBody2Dconst GRAVITY = 800const MOVE_SPEED = 200var kiirus = 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"): sisendvektor.x -= 1 kiirus.y += GRAVITSIOON * deltakiirus = liigu_ja_libisemine (kiirus, Vektor2(0, -1)) kiirus.x = sisendvektor.x * MOVE_SPEED

Kasutage kui-muidu lauseid mängija horisontaalse liikumise määramiseks. Kui mängija vajutab liigu paremale, lisage 1 sisend_vektor.x. Kui mängija vajutab liigu vasakule, lahutada 1 sisend_vektor.x. See lähenemine võimaldab sujuvamat liikumisjuhtimist ja välistab võimalikud konfliktid, kui mõlemat toimingut korraga vajutada.

Integreerige Simple Jump

Nüüd lisage oma mängijale põhiline hüppefunktsioon. Mängija peaks saama hüpata ainult siis, kui ta on platvormil. Lisage olemasolevale skriptile järgmine kood:

 const JUMP_FORCE = -400var is_on_floor = falsefunc _physics_process (delta):... on_korrusel

Selle koodiga kontrollige, kas mängija on platvormil, kasutades is_on_floor() funktsiooni. Kui mängija vajutab nuppu hüpata seadke vertikaalne kiirus hüppejõu väärtusele, pannes mängija hüppama.

Integreerige topelthüpe

Oma hüppemehaanika mitmekülgsuse lisamiseks rakendage topelthüppe funktsiooni. Mängija saab õhus olles sooritada teise hüppe, mis võimaldab neil jõuda veelgi kõrgematele platvormidele. Siin on teostuse näide:

 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("hüppa") if is_on_floor ja is_jumping: kiirus.y = JUMP_JÕUD hüpete_arv += 1, kui hüppe_arv < MAX_JUMP_COUNT ja hüppab: kiirus.y = JUMP_JÕUD hüpete_arv += 1

Tutvustage a hüppe_loendus muutuja, et jälgida mängija sooritatud hüpete arvu. The MAX_JUMP_COUNT konstant määrab maksimaalse lubatud hüpete arvu. Mängija saab sooritada teist hüpet ainult siis, kui ta on endiselt maksimaalse hüppe piirides.

Integreerige Jump Dash

Hüppamise mehaanika põnevamaks muutmiseks rakendage hüppekriipsu funktsiooni. See funktsioon võimaldab mängijal õhus olles kiiresti horisontaalselt liikuda, võimaldades neil liikuda takistuste vahel väledalt. Siin on teostuse näide:

 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("hüppa") var dash = Input.is_action_just_pressed("dash") if is_on_floor ja is_jumping: kiirus.y = JUMP_JÕUD hüpete_arv += 1, kui hüppe_arv < MAX_JUMP_COUNT ja on_hüppamine: kiirus.y = JUMP_JÕUD hüpete_arv += 1, kui kriips ja kriips: kiirus.x += JUMP_JÕUD can_dash = vale

Tutvustage a can_dash muutuja, et jälgida, kas mängija suudab kriipsu sooritada. Kui mängija vajutab nuppu kriips lisage horisontaalne jõud (DASH_FORCE) mängija kiirusele, võimaldades tal õhus horisontaalselt tormata.

Kaasa arvatud lisafunktsioonid

Lisaks põhilisele hüppemehaanikale saate oma mängu veelgi täiustada, lisades erinevaid funktsioone. Need võivad hõlmata hüppepatjade või vedrude rakendamist võimendatud hüpete jaoks, võimsuste kasutuselevõttu, mis muutke hüppekäitumist või lisage dünaamilisemaks hüppamiseks visuaalseid efekte, nagu osakeste süsteemid kogemusi.

Hüppepadjad või vedrud

Võimendatud hüppeid võimaldavate hüppepatjade või vedrude rakendamiseks saate mängustseenile lisada konkreetseid objekte ja tuvastada, millal mängija nendega kokku põrkub. Siin on teostuse näide:

 const JUMP_PAD_FORCE = -800func _on_JumpPad_body_entered (body): if body == $Mängija: kiirus.y = JUMP_PAD_FORCE

Selles koodis JumpPad on mängustseenile paigutatud kokkupõrkeobjekt ja Mängija on mängija märgi sõlme nimi. Kui mängija põrkab kokku hüppepadjaga, käivitab see võimendatud hüppe, rakendades mängijale suuremat vertikaalset jõudu.

Võimsused ja erilised võimed

Saate tutvustada võimsusi või erilisi võimeid, mis muudavad hüppemehaanika käitumist. Näiteks saate luua võimsuse, mis annab mängijale võimaluse sooritada kolmikhüpe. Siin on teostuse näide:

 const MAX_JUMP_COUNT = 4func _physics_process (delta):... kui on_põrandal: hüpete_arv = 0, kui on_põrandal ja hüppab: kiirus.y = JUMP_JÕUD hüpete_arv += 1, kui hüpete_arv < MAX_JUMP_COUNT ja on_hüppamine: kiirus.y = JUMP_JÕUD hüpete_arv += 1

Selles koodis on MAX_JUMP_COUNT konstant on seatud väärtusele 4, mis võimaldab mängijal sooritada kuni kolm järjestikust hüpet, kui sisselülitamine on aktiivne.

Visuaalsed efektid

Hüppamise visuaalselt atraktiivsemaks muutmiseks saate lisada osakeste süsteeme või muid visuaalseid efekte. Näiteks saate luua osakeste süsteemi, mis kiirgab osakesi, kui mängija hüppab. Siin on teostuse näide:

 var jump_particles = preload("res://JumpParticles.tscn")func _physics_process (delta):... if is_on_floor ja Input.is_action_just_pressed("hüpe"): kiirus.y = JUMP_FORCE hüppeosakesed.instance()

Selles koodis JumpParticles.tscn on osakeste süsteemi sõlme sisaldav stseen. Kui mängija hüppab, luuakse osakeste süsteemi eksemplar, mille tulemusena eralduvad visuaalselt atraktiivsed osakesed.

Hüppemehaanika parimad tavad

Hüppemehaanika rakendamisel Godoti mängumootor, on oluline kaaluda mõnda parimat tava:

  • Rahuldava mängutunnetuse saavutamiseks viimistlege gravitatsiooni, hüppejõu, kriipsujõu ja muude parameetrite väärtusi. Katsetamine ja iteratsioon on õige tasakaalu leidmisel üliolulised.
  • Katsetage ja korrake hüppemehaanikat, et veenduda, et see on tundlik, intuitiivne ja tasakaalustatud. Mehaanika täiustamiseks ja vajalike muudatuste tegemiseks küsige mängutestijate tagasisidet.
  • Rakendage õiget kokkupõrketuvastust, et vältida soovimatut käitumist ja tagada, et mängija suhtleb platvormidega õigesti. Kasutage kokkupõrgete täpseks käsitlemiseks Godot' kokkupõrkesüsteemi ja sobivaid kokkupõrkekihte.
  • Kaaluge autoriõigusteta muusika lisamine või animatsioone, et parandada mängija arusaamist oma tegelase hüppetegevusest. Hüppamise, hüppamise ja muude seotud tegevuste animatsioonid võivad pakkuda visuaalseid vihjeid, mis parandavad üldist mängijakogemust.

Muuda mängud kaasahaaravamaks hüppemehaanika abil

Lisades oma Godoti mängu hüppemehaanika, saate oluliselt suurendada selle kaasatust ja naudingut. Hüppamine võimaldab mängijatel navigeerida keerulises keskkonnas, ületada takistusi ja avastada uusi alasid.

See lisab oskusi ja täpsust, pakkudes saavutustunnet, kui seda õigesti sooritada. Lisaks kombineerides hüppemehaanikat teiste mänguelementidega, nagu mõistatused, vaenlased või kogumisobjekte, saate luua ainulaadseid ja väljakutseid pakkuvaid mängukogemusi, mis hoiavad mängijaid endaga kaasas ja meelelahutust.