Fejlesszen magával ragadó játékkörnyezetet Godot-játékaihoz lenyűgöző animációkkal.
A játékfejlesztésben az animációk döntő szerepet játszanak abban, hogy megnyerő és magával ragadó élményt teremtsenek a játékosok számára. Ha 2D-s animációkat ad hozzá Godot-játékához, életre keltheti karaktereit és környezetét, vizuálisan vonzóbbá és interaktívabbá téve őket.
Szerencsére a Godot hatékony eszközöket és funkciókat kínál a 2D animációk egyszerű létrehozásához és vezérléséhez.
A Godot játék beállítása
Kezdésként állíts be egy alapvető 2D-s játékjelenetet a Godot játékmotor. Hozzon létre egy új jelenetet, és adjon hozzá a KinematicBody2D csomópont, mint a játékos karakter. Benne KinematicBody2D, add hozzá a CollisionShape2D téglalap alakú, amely a játékos ütközési határait ábrázolja.
A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.
Ezenkívül adjon hozzá egy AnimatedSprite csomópont a lejátszó animációinak kezelésére. Ezenkívül győződjön meg arról, hogy a következő beviteli műveleteket leképezte a sajátjában Bemeneti térkép:
Ezután írja be a GDScript kódot a lejátszó mozgásának vezérléséhez. Csatolja a következő szkriptet a KinematicBody2D csomópont:
kiterjeszti KinematicBody2Dconst SPEED = 200func _fizikai_folyamat (delta): var velocity = Vector2.ZERO if Input.is_action_pressed("move_left"): sebesség.x -= SEBESSÉG, ha Input.is_action_pressed("move_right"): sebesség.x += SEBESSÉG, ha Input.is_action_pressed("move_up"): sebesség.y -= SEBESSÉG, ha Input.is_action_pressed("move_down"): sebesség.y += SEBESSÉG sebesség = move_and_slide (sebesség)
Ez a szkript állandó sebességet állít be a játékos számára, és lehetővé teszi számukra, hogy balra, jobbra, fel és le mozogjanak a nyílbillentyűk vagy a WASD segítségével.
SpriteSheet hozzáadása az AnimatedSprite-hoz
Most konfigurálja a AnimatedSprite hogy egy sprite lapot használjunk animációkhoz. Válaszd ki a AnimatedSprite csomópontot, és navigáljon a Keretek szakaszt a csomópont tulajdonságai lapján. Itt kattintson a Új SpriteFrame-ek gomb.
Váltson a SpriteFrames fül a Godot szerkesztő alján. Ban,-ben SpriteFrames fülre, kattintson a Új animáció gomb. Készítsen animációkat, mint pl séta és tétlen megfelelő képkockák hozzáadásával minden animációhoz.
Ezenkívül lehetősége van más animációk létrehozására, például lövöldözésre, ugrásra és mászásra egy platformer játékhoz. Ezt követően kattintson a Adjon hozzá kereteket a SpriteSheetből gombot az egyes képkockák automatikus kinyeréséhez a sprite lapról.
Animációk vezérlése GDScript használatával
Most, hogy beállította animációit, programozottan vezérelheti őket a GDScript segítségével.
Az animáció lejátszása és leállítása
Az animációk lejátszásának vezérlése elengedhetetlen ahhoz, hogy dinamikus és interaktív élményben legyen része a játékban. A AnimatedSprite Node a Godot-ban módszereket kínál az animációk lejátszására és leállítására a játék logikájának megfelelően.
Hosszabbítsa meg a KinematicBody2D csomópontot, és kezelje az animációvezérlőt a _fizikai_folyamat funkció. Használhatja a play_animation és stop_animation bemenetek a megfelelő animációs műveletek elindításához.
kiterjeszti a KinematicBody2Dfunc _physics_process (delta): # Játssza le az animációt, ha Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Állítsa le az animációt és állítsa vissza az első képkockát, ha Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0
A megfelelő beviteli műveletek feltérképezésével biztosíthatja a játékosoknak az animáció lejátszását a játékban.
Például bekötheti a play_animation gombnyomásra vagy egy adott eseményre a játékban, lehetővé téve a játékos számára, hogy a kívánt pillanatban animációs sorozatot indítson el. Ezenkívül megteheti szerzői jogoktól mentes zenét találni lejátszani az animáció futása közben.
Hasonlóképpen kiválthatja a stop_animation műveletek az animáció teljes leállításához.
Ezen animációvezérlő mechanizmusok beépítésével mélységet és interaktivitást adhat a játék animációihoz, így vonzóbb és magával ragadóbb élményeket nyújthat játékosainak.
Az animáció elforgatása
Az animáció elforgatása vizuális érdeklődést és változatosságot kölcsönöz a játéknak. Programozottan elforgathatja a AnimatedSprite csomópont az animáció tájolásának megváltoztatásához. Az elforgatást fokban alkalmazhatja a forog() módszer.
kiterjeszti a KinematicBody2Dfunc _fizikai_folyamatot (delta): if Input.is_action_just_pressed("rotate_animation"): # Az animáció elforgatása 45 fokkal az óramutató járásával megegyező irányban $AnimatedSprite.rotate (deg2rad (45))
Amikor megnyomja a kapcsolódó gombokat rotate_animation (ezt a műveletet meghatározhatja a beviteli térképen), a forog() módszert hívják a AnimatedSprite csomópont. 45 fokkal elforgatja a csomópontot az óramutató járásával megegyező irányban a segítségével deg2rad() hogy a fokokat radiánra váltsuk.
Ne feledje, hogy a forgatás az egészre vonatkozik AnimatedSprite csomópont, beleértve az animáció összes képkockáját. Ezért, ha csak bizonyos kereteket szeretne elforgatni, előfordulhat, hogy külön kell őket felosztani AnimatedSprite csomópontokat, vagy használjon más technikákat, például az egyes képkockák megfordítását.
Az animáció megfordítása
Az animáció vízszintes vagy függőleges megfordítása hasznos lehet a karakter irányának változásainak tükrözéséhez. Godot-ban a AnimatedSprite node tulajdonságokat biztosít a tükrözés vezérléséhez.
Az animáció vízszintes megfordításához állítsa be a flip_h tulajdona a AnimatedSprite nak nek igaz. Ez tükrözi az animációt a vízszintes tengely mentén. Hasonlóképpen a flip_v tulajdonát igaz tükrözi az animációt a függőleges tengely mentén.
kiterjeszti a KinematicBody2Dfunc _fizikai_folyamatot (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # vagy $AnimatedSprite.flip_v = igaz függőleges tükrözéshez
Ha a játékos megnyomja a gombot flip_animation beviteli művelet, majd állítsa be a flip_h tulajdona a AnimatedSprite nak nek igaz. Ezzel vízszintesen megfordítja az animációt.
Jelek felhasználása az AnimatedSprite-ban
Az animációk programozott vezérlése mellett a Godot egy erős eseményrendszert is biztosít, amelyet jeleknek nevezünk. A jelek lehetővé teszik, hogy reagáljon a játék végrehajtása során bekövetkező konkrét eseményekre vagy változásokra.
Abban az esetben AnimatedSprite, két fontos jelzést használhat: animation_finished() és frame_changed().
1. animation_finished() Signal
A animation_finished() jelet bocsát ki, amikor az animáció eléri az utolsó képkockát, akár egyetlen lejátszás közben, akár hurok közben. Ez a jel akkor hasznos, ha műveleteket szeretne végrehajtani vagy eseményeket indítani az animáció befejezésekor.
kiterjeszti a KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Műveletek végrehajtása vagy események kiváltása print("Animáció kész!") # További kód itt...
Csatlakoztassa a animation_finished() jele a AnimatedSprite hoz _on_animation_finished() metódus ugyanabban a szkriptben a connect() funkció.
Amikor az animáció lejátszása befejeződik, egyéni logikát hajthat végre, vagy egyéb funkciókat indíthat el a segítségével _on_animation_finished() módszer.
2. frame_changed() Jel
A frame_changed() jelet bocsát ki, amikor az animáció aktuális képkockája megváltozik. Ez akkor fordulhat elő, amikor az animáció lejátszása, vagy amikor programozottan módosítja a keretet. Ezzel a jellel észlelheti a képkocka változásait, és ennek megfelelően reagálhat.
kiterjeszti a KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Műveletek végrehajtása az aktuális keret alapján var currentFrame = $AnimatedSprite.frame print("Aktuális keret: ", currentFrame) # További kód itt...
Csatlakoztassa a frame_changed() jele a AnimatedSprite hoz _on_frame_changed() módszer ugyanabban a szkriptben. Amikor a keret megváltozik, az aktuális képkockát a gombbal érheti el _on_frame_changed() módszert, és a keret értéke alapján hajtson végre műveleteket vagy logikát.
A jelek felhasználásával reagálhat az animációs eseményekre, például a befejezésre vagy a keretváltásokra, és dinamikus viselkedéseket építhet be, vagy konkrét műveleteket indíthat el a játékban.
Tedd lebilincselőbbé a Godot-játékokat animációk segítségével
Ha 2D-s animációkat ad hozzá Godot-játékaihoz, az nagyban javíthatja az általános játékos élményt. Az animációk életre keltik a karaktereket, mozdulataikat és cselekedeteiket látványosabbá téve. Különböző tevékenységekhez, például séta, futás, támadás és ugrás animációival dinamikus és magával ragadó játékkörnyezetet hozhat létre.
Ezenkívül animációkat is használhat, hogy vizuális visszajelzést adjon a lejátszónak. Ez a visszajelzés segít vonzóbbá és reagálóbbá tenni a játékot, fokozva a játékos kontroll- és részvételi érzését.