Įvaldykite šokinėjimo mechaniką šiame paprastame vadove. Įšokime į jį!

Šokinėjimo mechanika yra pagrindinis daugelio platformingų žaidimų aspektas, leidžiantis žaidėjams įveikti kliūtis, pasiekti aukštesnes platformas ir žaidimui suteikti papildomo interaktyvumo.

„Godot“, populiariame atvirojo kodo žaidimų variklyje, šokinėjimo mechanikos įgyvendinimas yra gana paprastas ir gali labai padidinti žaidimo įsitraukimą ir malonumą.

„Godot“ žaidimo nustatymas

Prieš pasinerdami į šokinėjimo mechanikos įgyvendinimą, nustatykite pagrindinę Godot žaidimo struktūrą. Pradėkite kurdami naują 2D projektą Godot. Scenoje sukurkite a „KinematicBody2D“. mazgas kaip žaidėjo personažas. Pritvirtinkite a CollisionShape2D žaidėjui, apibrėždamas jo formą su a Stačiakampio forma2D.

Šiame straipsnyje naudojamas kodas pateikiamas čia GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.

Be to, įtraukite a Sprite2D vizualiai pavaizduoti žaidėją. Sukurkite keletą horizontalių ir vertikalių platformų naudodami StaticBody2D žaidimo scenoje, kad būtų pateiktas kontekstas šokinėjimo mechanikai.

instagram viewer

Pridėkite kodą, kad žaidėjas galėtų judėti kairėn ir dešinėn. Taip pat įtraukite gravitaciją, kad judėtumėte tikroviškai. Norėdami pradėti, pateikiame GDScript kodo fragmento pavyzdį:

 išplečia KinematicBody2Dconst GRAVITY = 800const MOVE_SPEED = 200var greitis = 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"): įvesties_vektorius.x -= 1 greitis.y += GRAVITĖ * delta greitis = judėjimas_ir_slydimas (greitis, Vector2(0, -1)) greitis.x = įvesties_vektorius.x * MOVE_SPEED

Naudokite jei-kita teiginius nustatyti horizontalų žaidėjo judėjimą. Jei žaidėjas paspaudžia perkelti į dešinę, pridėkite 1 prie įvesties_vektorius.x. Jei žaidėjas paspaudžia perkelti_į kairę, atimkite 1 iš įvesties_vektorius.x. Šis metodas leidžia sklandžiau valdyti judesius ir pašalina galimus konfliktus, kai abu veiksmai paspaudžiami vienu metu.

Integruokite paprastą šuolį

Dabar pridėkite pagrindinę šuolio funkciją prie savo grotuvo. Žaidėjas turi mokėti šokinėti tik tada, kai yra ant platformos. Prie esamo scenarijaus pridėkite šį kodą:

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

Naudodami šį kodą patikrinkite, ar grotuvas yra platformoje, naudodamas is_on_floor() funkcija. Kai grotuvas paspaudžia mygtuką šokinėti veiksmą, nustatykite vertikalų greitį į šuolio jėgos vertę, kad žaidėjas šokinėtų.

Integruokite dvigubą šuolį

Norėdami suteikti savo šokinėjimo mechanikai daugiau universalumo, įdiekite dvigubo šuolio funkciją. Žaidėjas galės atlikti antrą šuolį būdamas ore, leisdamas pasiekti dar aukštesnes platformas. Štai įgyvendinimo pavyzdys:

 const MAX_JUMP_COUNT = 3var jump_count = 0funkcinis _fizikos_procesas (delta):... is_on_floor = yra_ant_grindys() if yra_ant_grindo: jump_count = 0 var is_jumping = Input.is_action_just_pressed("jump") if is_ant_floor and is_jumping: greitis.y = JUMP_FORCE šuolio_skaičius += 1, jei šuolio_skaičius < MAX_JUMP_COUNT ir is_jumping: greitis.y = JUMP_FORCE šuolio_skaičius += 1

Pristatykite a jump_count kintamasis, skirtas sekti žaidėjo atliktų šuolių skaičių. The MAX_JUMP_COUNT konstanta apibrėžia didžiausią leistiną šuolių skaičių. Žaidėjas gali atlikti antrą šuolį tik tada, kai jis vis dar neviršija didžiausio šuolio skaičiaus.

Integruoti Jump Dash

Kad šokinėjimo mechanika būtų įdomesnė, įdiekite šuolio brūkšnio funkciją. Ši funkcija leis žaidėjui greitai judėti horizontaliai būdamas ore, o tai leis jiems greitai pereiti kliūtis. Štai įgyvendinimo pavyzdys:

 const DASH_FORCE = 4000var can_dash = truefunc _physics_process (delta):... is_on_floor = yra_ant_grindys() if yra_ant_grindys: 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: greitis.y = JUMP_FORCE šuolio_skaičius += 1, jei šuolio_skaičius < MAX_JUMP_COUNT ir yra_šokimas: greitis.y = JUMP_FORCE šuolio_skaičius += 1, jei gali_brūkšnys ir brūkšnys: greitis.x += DASH_FORCE can_dash = klaidinga

Pristatykite a can_dash kintamasis, skirtas stebėti, ar žaidėjas gali atlikti brūkšnį. Kai grotuvas paspaudžia mygtuką brūkšnys veiksmą, pridėkite horizontalią jėgą (DASH_FORCE).

Įskaitant papildomas funkcijas

Be pagrindinės šokinėjimo mechanikos, galite dar labiau pagerinti savo žaidimą įtraukdami įvairias funkcijas. Tai gali apimti šuolio trinkelių ar spyruoklių, skirtų sustiprintiems šuoliams, įdiegimą, galios įvedimą keisti šuolio elgesį arba pridėti vaizdinių efektų, pvz., dalelių sistemų, kad būtų dinamiškesnis šokinėjimas patirtį.

Šokinėjimo pagalvėlės arba spyruoklės

Jei norite įdiegti šuolius ar spyruokles, kurios užtikrina sustiprintus šuolius, galite pridėti konkrečių objektų prie žaidimo scenos ir aptikti, kada žaidėjas su jais susiduria. Štai įgyvendinimo pavyzdys:

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

Šiame kode, JumpPad yra susidūrimo objektas, patalpintas žaidimo scenoje, ir Žaidėjas yra žaidėjo simbolio mazgo pavadinimas. Kai žaidėjas susiduria su šuolio padu, jis suaktyvina padidintą šuolį, pritaikydamas žaidėjui didesnę vertikalią jėgą.

Sustiprinimai ir specialūs sugebėjimai

Galite įdiegti jėgų ar specialių sugebėjimų, kurie keičia šokinėjimo mechanikos elgesį. Pavyzdžiui, galite sukurti galią, kuri suteikia žaidėjui galimybę atlikti trigubą šuolį. Štai įgyvendinimo pavyzdys:

 const MAX_JUMP_COUNT = 4funkcinis _fizikos_procesas (delta):... if is_ant_floor: šuolio_skaičius = 0, jei yra_ant aukšto ir yra_šokantis: greitis.y = JUMP_FORCE šuolio_skaičius += 1, jei šuolio_skaičius < MAX_JUMP_COUNT ir yra_šokimas: greitis.y = JUMP_FORCE šuolio_skaičius += 1

Šiame kode, MAX_JUMP_COUNT konstanta nustatyta į 4, todėl žaidėjas gali atlikti iki trijų šuoliukų iš eilės, kai įjungtas įjungimas.

Vizualiniai efektai

Kad šokinėjimas būtų vizualiai patrauklesnis, galite pridėti dalelių sistemų ar kitų vaizdinių efektų. Pavyzdžiui, galite sukurti dalelių sistemą, kuri išskiria daleles žaidėjui šokinėjant. Štai įgyvendinimo pavyzdys:

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

Šiame kode, JumpParticles.tscn yra scena, kurioje yra dalelių sistemos mazgas. Kai žaidėjas šokinėja, sukuriamas dalelių sistemos pavyzdys, dėl kurio išsiskiria vizualiai patrauklios dalelės.

Geriausia šuolių mechanikos praktika

Diegiant šuolių mechaniką Godot žaidimo variklis, būtina atsižvelgti į keletą geriausios praktikos pavyzdžių:

  • Tiksliai sureguliuokite gravitacijos, šuolio jėgos, brūkšnio jėgos ir kitų parametrų reikšmes, kad žaidimas būtų patenkinamas. Eksperimentavimas ir kartojimas yra labai svarbūs norint rasti tinkamą pusiausvyrą.
  • Išbandykite ir kartokite šokinėjimo mechaniką, kad įsitikintumėte, jog ji reaguoja, intuityvi ir subalansuota. Paprašykite žaidimų bandytojų atsiliepimų, kad patobulintumėte mechaniką ir atliktumėte reikiamus pakeitimus.
  • Įdiekite tinkamą susidūrimo aptikimą, kad išvengtumėte netyčinio elgesio ir užtikrintumėte, kad žaidėjas tinkamai sąveikauja su platformomis. Norėdami tiksliai valdyti susidūrimus, naudokite Godot susidūrimo sistemą ir atitinkamus susidūrimo sluoksnius.
  • Apsvarstykite pridėti muzikos be autorių teisių arba animacijos, kad žaidėjas geriau suprastų savo veikėjo šokinėjimo veiksmus. Šokinėjimo, veržimosi ir kitų susijusių veiksmų animacijos gali suteikti vaizdinių užuominų, kurios pagerina bendrą žaidėjo patirtį.

Padarykite žaidimus patrauklesnius su šuolio mechanika

Įtraukę šokinėjimo mechaniką į savo Godot žaidimą, galite žymiai padidinti jo įsitraukimą ir malonumą. Šokinėjimas leidžia žaidėjams naršyti sudėtingoje aplinkoje, įveikti kliūtis ir atrasti naujas sritis.

Tai prideda įgūdžių ir tikslumo, suteikiant pasiekimo jausmą, kai atliekama teisingai. Be to, derinant šokinėjimo mechaniką su kitais žaidimo elementais, tokiais kaip galvosūkiai, priešai ar Kolekcionuojami daiktai, galite sukurti unikalią ir sudėtingą žaidimo patirtį, kuri leis žaidėjams pasinerti ir linksminosi.