Sukurkite įtraukiančią žaidimo aplinką savo Godot žaidimams su žaviomis animacijomis.

Kuriant žaidimą, animacijos vaidina lemiamą vaidmenį kuriant patrauklią ir įtraukią žaidėjų patirtį. Pridėję 2D animaciją į savo Godot žaidimą, jūsų personažai ir aplinka taps gyvesni, vizualiai patrauklesni ir interaktyvesni.

Laimei, „Godot“ siūlo galingus įrankius ir funkcijas, leidžiančias lengvai kurti ir valdyti 2D animaciją.

„Godot“ žaidimo nustatymas

Norėdami pradėti, nustatykite pagrindinę 2D žaidimo sceną Godot žaidimo variklis. Sukurkite naują sceną ir pridėkite a „KinematicBody2D“. mazgas kaip žaidėjo personažas. Viduje „KinematicBody2D“., Pridėti CollisionShape2D su stačiakampio forma, vaizduojančia žaidėjo susidūrimo ribas.

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

Be to, pridėkite an AnimatedSprite mazgas, skirtas tvarkyti grotuvo animacijas. Be to, įsitikinkite, kad susiejote toliau nurodytus įvesties veiksmus Įvesties žemėlapis:

instagram viewer

Tada parašykite GDScript kodą, kad valdytumėte grotuvo judėjimą. Pridėkite šį scenarijų prie „KinematicBody2D“. mazgas:

 išplečia KinematicBody2Dconst SPEED = 200func _physics_process (delta): var greitis = Vector2.ZERO if Input.is_action_pressed("move_left"): greitis.x -= SPEED, jei Input.is_action_pressed("move_right"): greitis.x += SPEED if Input.is_action_pressed("move_up"): greitis.y -= SPEED if Input.is_action_pressed("move_down"): greitis.y += SPEED greitis = move_and_slide (greitis)

Šis scenarijus nustato pastovų žaidėjo greitį ir leidžia jiems judėti kairėn, dešinėn, aukštyn ir žemyn naudojant rodyklių klavišus arba WASD.

„SpriteSheet“ pridėjimas „AnimatedSprite“.

Dabar sukonfigūruokite AnimatedSprite animacijai naudoti sprite lapą. Pasirinkite AnimatedSprite mazgas ir eikite į Rėmeliai skyrių mazgo ypatybių skirtuke. Čia spustelėkite Nauji SpriteFrames mygtuką.

Perjungti į „SpriteFrames“. skirtuką, esantį „Godot“ redaktoriaus apačioje. Viduje „SpriteFrames“. skirtuką, spustelėkite Nauja Animacija mygtuką. Kurkite animaciją, pvz vaikščioti ir tuščiąja eiga pridedant atitinkamus kadrus prie kiekvienos animacijos.

Be to, galite kurti kitas animacijas, tokias kaip šaudymas, šokinėjimas ir laipiojimas platformingo žaidimo. Po to spustelėkite Pridėkite rėmelius iš „SpriteSheet“. mygtuką, kad automatiškai ištrauktumėte atskirus kadrus iš sprite lapo.

Animacijų valdymas naudojant GDScript

Dabar, kai nustatėte animacijas, galite jas valdyti programiškai naudodami GDScript.

Animacijos paleidimas ir sustabdymas

Animacijos atkūrimo valdymas yra būtinas norint užtikrinti dinamišką ir interaktyvią žaidimo patirtį. The AnimatedSprite „Godot“ mazgas siūlo metodus, kaip žaisti ir sustabdyti animaciją pagal jūsų žaidimo logiką.

Išplėskite „KinematicBody2D“. mazgas ir tvarkykite animacijos valdymą _fizikos_procesas funkcija. Galite naudoti play_animation ir stop_animacija įvestis, kad suaktyvintų atitinkamus animacijos veiksmus.

 išplečia KinematicBody2Dfunc _physics_process (delta): # Leiskite animaciją, jei Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Sustabdykite animaciją ir iš naujo nustatykite pirmąjį kadrą, jei Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0

Nurodydami atitinkamus įvesties veiksmus, galite suteikti žaidėjams galimybę valdyti animacijos atkūrimą žaidime.

Pavyzdžiui, galite susieti play_animation veiksmas mygtuko paspaudimu arba konkretus žaidimo įvykis, leidžiantis žaidėjui suaktyvinti animacijos seką norimu momentu. Be to, galite rasti muziką be autorių teisių žaisti, kol veikia animacija.

Panašiai galite suaktyvinti stop_animacija veiksmai visiškai sustabdyti animaciją.

Naudodami šiuos animacijos valdymo mechanizmus, galite suteikti žaidimo animacijai gylio ir interaktyvumo, taip sukurdami žaidėjams patrauklesnę ir įtraukesnę patirtį.

Animacijos pasukimas

Sukdami animaciją galite suteikti žaidimui vaizdinio susidomėjimo ir įvairovės. Galite programiškai pasukti AnimatedSprite mazgas, kad pakeistumėte animacijos orientaciją. Galite pritaikyti pasukimą laipsniais naudodami pasukti () metodas.

 išplečia KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Pasukite animaciją 45 laipsnių kampu pagal laikrodžio rodyklę $AnimatedSprite.rotate (deg2rad (45))

Kai paspausite mygtukus, susietus su pasukti_animaciją (šį veiksmą galite apibrėžti įvesties žemėlapyje), pasukti () metodas vadinamas AnimatedSprite mazgas. Jis pasuka mazgą 45 laipsnių kampu pagal laikrodžio rodyklę naudojant deg2rad() konvertuoti laipsnius į radianus.

Atminkite, kad sukimas bus taikomas visam AnimatedSprite mazgas, įskaitant visus animacijos kadrus. Todėl, jei norite pasukti tik tam tikrus kadrus, gali tekti padalyti juos į atskirus AnimatedSprite mazgus arba naudoti kitus metodus, pvz., atskirų kadrų apvertimą.

Animacijos apvertimas

Animacijos apvertimas horizontaliai arba vertikaliai gali būti naudingas norint atspindėti simbolių krypties pokyčius. Godot, AnimatedSprite mazgas suteikia savybes, skirtas valdyti apvertimą.

Norėdami apversti animaciją horizontaliai, nustatykite flip_h nuosavybė AnimatedSprite į tiesa. Tai atspindės animaciją išilgai horizontalios ašies. Panašiai nustatant flip_v nuosavybė į tiesa atspindės animaciją išilgai vertikalios ašies.

 išplečia KinematicBody2Dfunc _fizikos_procesą (delta): jei Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # arba $AnimatedSprite.flip_v = tiesa vertikaliam apvertimui

Jei žaidėjas paspaudžia mygtuką flip_animation įvesties veiksmas, tada nustatykite flip_h nuosavybė AnimatedSprite į tiesa. Tai apvers animaciją horizontaliai.

Signalų naudojimas AnimatedSprite

„Godot“ ne tik programiškai valdo animacijas, bet ir teikia galingą įvykių sistemą, vadinamą signalais. Signalai leidžia reaguoti į konkrečius įvykius ar pokyčius, įvykusius žaidimo vykdymo metu.

Jeigu AnimatedSprite, yra du svarbūs signalai, kuriuos galite naudoti: animacija_baigta() ir frame_changed().

1. animation_finished() Signalas

The animacija_baigta() signalas skleidžiamas, kai animacija pasiekia paskutinį kadrą, arba per vieną atkūrimą, arba kai ji sukasi. Šis signalas yra naudingas, kai norite atlikti veiksmus arba suaktyvinti įvykius pasibaigus animacijai.

 išplečia KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Atlikite veiksmus arba suaktyvinkite įvykius print("Animacija baigta!") # Papildomas kodas čia...

Prijunkite animacija_baigta() signalas AnimatedSprite prie _on_animation_finished() metodas tame pačiame scenarijuje, naudojant Prisijungti() funkcija.

Baigus leisti animaciją, galite vykdyti pasirinktinę logiką arba suaktyvinti kitas funkcijas naudodami _on_animation_finished() metodas.

2. frame_changed() Signalas

The frame_changed() signalas skleidžiamas, kai pasikeičia dabartinis animacijos kadras. Taip gali nutikti, kai leidžiama animacija arba kai programiškai modifikuojate kadrą. Galite naudoti šį signalą kadro pasikeitimams aptikti ir atitinkamai reaguoti.

 išplečia KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Atlikite veiksmus pagal esamą kadrą var currentFrame = $AnimatedSprite.frame print("Dabartinis kadras: ", currentFrame) # Papildomas kodas čia...

Prijunkite frame_changed() signalas AnimatedSprite prie _on_frame_changed() metodas tame pačiame scenarijuje. Kai kadras pasikeičia, dabartinį kadrą galite pasiekti naudodami _on_frame_changed() metodą ir atlikti veiksmus arba logiką, pagrįstą kadro verte.

Naudodami signalus galite reaguoti į animacijos įvykius, pvz., užbaigimą ar kadrų pakeitimus, ir įtraukti dinamišką elgesį arba suaktyvinti konkrečius žaidimo veiksmus.

Padarykite Godot žaidimus patrauklesnius naudodami animaciją

2D animacijos įtraukimas į savo Godot žaidimus gali labai pagerinti bendrą žaidėjo patirtį. Animacijos atgaivina personažus, todėl jų judesiai ir veiksmai tampa vizualiai patrauklesni. Įtraukdami animaciją įvairiems veiksmams, tokiems kaip ėjimas, bėgimas, puolimas ir šokinėjimas, galite sukurti dinamišką ir įtraukią žaidimo aplinką.

Be to, galite naudoti animacijas, kad grotuvui pateiktumėte vaizdinį grįžtamąjį ryšį. Šis atsiliepimas padeda padaryti žaidimą patrauklesnį ir jautresnį, sustiprinant žaidėjo kontrolės ir įsitraukimo jausmą.