Razvijte poglobljeno igralno okolje za svoje igre Godot z očarljivimi animacijami.
Pri razvoju iger igrajo animacije ključno vlogo pri ustvarjanju privlačne in poglobljene izkušnje za igralce. Če v igro Godot dodate 2D animacije, lahko oživite svoje like in okolje, zaradi česar postanejo bolj vizualno privlačni in interaktivni.
Na srečo Godot ponuja zmogljiva orodja in funkcije za enostavno ustvarjanje in nadzor 2D animacij.
Nastavitev igre Godot
Za začetek nastavite osnovno sceno 2D igre igralni motor Godot. Ustvarite novo sceno in dodajte a KinematicBody2D vozlišče kot igralčev lik. Znotraj KinematicBody2D, dodajte a CollisionShape2D s pravokotno obliko, ki predstavlja igralčeve meje trčenja.
Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.
Poleg tega dodajte še AnimatedSprite vozlišče za upravljanje animacij igralca. Poleg tega se prepričajte, da preslikate naslednja vnosna dejanja v svoj Vhodni zemljevid:
Nato napišite kodo GDScript za nadzor gibanja igralca. Priložite naslednji skript KinematicBody2D vozlišče:
extends KinematicBody2Dconst SPEED = 200func _physics_process (delta): var velocity = Vector2.ZERO if Input.is_action_pressed("move_left"): velocity.x -= SPEED if Input.is_action_pressed("move_right"): velocity.x += SPEED if Input.is_action_pressed("move_up"): velocity.y -= SPEED if Input.is_action_pressed("move_down"): velocity.y += SPEED velocity = premikanje_in_drsenje (hitrost)
Ta skript nastavi igralcu konstantno hitrost in mu omogoča premikanje levo, desno, gor in dol s puščičnimi tipkami ali WASD.
Dodajanje SpriteSheet v AnimatedSprite
Zdaj pa konfigurirajte AnimatedSprite za uporabo lista sprite za animacije. Izberite AnimatedSprite vozlišče in se pomaknite do Okvirji v razdelku z lastnostmi vozlišča. Tukaj kliknite na Novi SpriteFrames gumb.
Preklopite na SpriteFrames zavihek na dnu urejevalnika Godot. V SpriteFrames zavihek kliknite na Nova animacija gumb. Ustvarite animacije, kot je npr hoditi in nedejaven z dodajanjem ustreznih okvirjev vsaki animaciji.
Poleg tega imate možnost ustvariti druge animacije, kot so streljanje, skakanje in plezanje za platformsko igro. Po tem kliknite na Dodajte okvirje iz SpriteSheet gumb za samodejno ekstrahiranje posameznih okvirjev iz lista sprite.
Upravljanje animacij z uporabo GDScript
Zdaj, ko imate nastavljene animacije, jih lahko programsko nadzirate z GDScript.
Predvajanje in zaustavitev animacije
Nadzor nad predvajanjem animacij je bistvenega pomena za zagotavljanje dinamičnih in interaktivnih izkušenj v vaši igri. The AnimatedSprite vozlišče v Godotu ponuja metode za predvajanje in zaustavitev animacij v skladu z logiko vaše igre.
Podaljšajte KinematicBody2D vozlišče in upravljajte nadzor animacije znotraj _fizikalni_proces funkcijo. Lahko uporabite predvajaj_animacijo in stop_animacija vhode za sprožitev ustreznih dejanj animacije.
extends KinematicBody2Dfunc _physics_process (delta): # Predvajaj animacijo, če je Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Ustavi animacijo in ponastavi na prvi okvir, če je Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0
Če preslikate ustrezna vhodna dejanja, lahko igralcem zagotovite nadzor nad predvajanjem animacije v vaši igri.
Na primer, lahko povežete predvajaj_animacijo dejanje do pritiska gumba ali določenega dogodka v vaši igri, kar omogoča igralcu, da v želenem trenutku sproži zaporedje animacij. Poleg tega lahko poiščite glasbo brez avtorskih pravic za predvajanje med izvajanjem animacije.
Podobno lahko sprožite stop_animacija dejanja za popolno zaustavitev animacije.
Z vključitvijo teh mehanizmov za nadzor animacije lahko animacijam svoje igre dodate globino in interaktivnost ter ustvarite bolj privlačne in poglobljene izkušnje za svoje igralce.
Vrtenje animacije
Vrtenje animacije lahko vaši igri doda vizualno zanimivost in raznolikost. Lahko programsko zasukate AnimatedSprite vozlišče za spremembo usmerjenosti animacije. Vrtenje v stopinjah lahko uporabite z uporabo vrti() metoda.
extends KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Zasukaj animacijo za 45 stopinj v smeri urinega kazalca $AnimatedSprite.rotate (deg2rad (45))
Ko pritisnete gumbe, povezane z vrti_animacijo (to dejanje lahko definirate v svojem vnosnem zemljevidu), the vrti() metoda se imenuje na AnimatedSprite vozlišče. Zasuka vozlišče za 45 stopinj v smeri urinega kazalca z uporabo deg2rad() za pretvorbo stopinj v radiane.
Upoštevajte, da se bo vrtenje uporabilo za celotno AnimatedSprite vozlišče, vključno z vsemi okvirji animacije. Zato, če želite zavrteti samo določene okvirje, jih boste morda morali razdeliti na ločene AnimatedSprite vozlišča ali uporabite druge tehnike, kot je obračanje posameznih okvirjev.
Obračanje animacije
Obračanje animacije vodoravno ali navpično je lahko uporabno za prikaz sprememb v smeri znakov. V Godotu je AnimatedSprite vozlišče ponuja lastnosti za nadzor obračanja.
Če želite animacijo obrniti vodoravno, nastavite flip_h lastnina AnimatedSprite do prav. To bo zrcalilo animacijo vzdolž vodoravne osi. Podobno nastavitev flip_v premoženje do prav bo zrcalila animacijo vzdolž navpične osi.
razširi KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # ali $AnimatedSprite.flip_v = true za navpično obračanje
Če igralec pritisne flip_animation vnosno dejanje in nato nastavite flip_h lastnina AnimatedSprite do prav. To bo vodoravno obrnilo animacijo.
Uporaba signalov v AnimatedSprite
Poleg programskega nadzora animacij Godot zagotavlja zmogljiv sistem dogodkov, imenovan signali. Signali vam omogočajo, da se odzovete na določene dogodke ali spremembe, ki se zgodijo med izvajanjem vaše igre.
V primeru AnimatedSprite, lahko uporabite dva pomembna signala: animation_finished() in frame_changed().
1. animation_finished() Signal
The animation_finished() signal se odda, ko animacija doseže zadnjo sličico, bodisi med enim predvajanjem ali ko se ponavlja. Ta signal je uporaben, ko želite izvesti dejanja ali sprožiti dogodke, ko se animacija zaključi.
razširja KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished") func _on_animation_finished(): # Izvedite dejanja ali sprožite dogodke print("Animation" končano!") # Dodatna koda tukaj ...
Povežite animation_finished() signal za AnimatedSprite do _on_animation_finished() v istem skriptu z uporabo povezati () funkcijo.
Ko se animacija konča s predvajanjem, lahko izvedete logiko po meri ali sprožite druge funkcije z uporabo _on_animation_finished() metoda.
2. frame_changed() signal
The frame_changed() signal se oddaja vsakič, ko se trenutni okvir animacije spremeni. To se lahko zgodi, ko se animacija predvaja ali ko programsko spremenite okvir. S tem signalom lahko zaznate spremembe okvirja in se ustrezno odzovete.
extends KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Izvedite dejanja glede na trenutni okvir var currentFrame = $AnimatedSprite.frame print("Trenutni okvir: ", currentFrame) # Dodatna koda tukaj ...
Povežite frame_changed() signal za AnimatedSprite do _on_frame_changed() metodo v istem skriptu. Ko se okvir spremeni, lahko do trenutnega okvirja dostopate z uporabo _on_frame_changed() metodo in izvaja dejanja ali logiko na podlagi vrednosti okvirja.
Z uporabo signalov se lahko odzovete na dogodke animacije, kot so dokončanje ali spremembe okvirja, in vključite dinamično vedenje ali sprožite določena dejanja v svoji igri.
Z animacijami naredite igre Godot bolj privlačne
Dodajanje 2D animacij vašim igram Godot lahko močno izboljša celotno izkušnjo igralca. Animacije oživijo like, zaradi česar so njihova gibanja in dejanja bolj vizualno privlačna. Z vključitvijo animacij za različna dejanja, kot so hoja, tek, napad in skakanje, lahko ustvarite dinamično in poglobljeno okolje igranja.
Poleg tega lahko uporabite tudi animacije za vizualno povratno informacijo igralcu. Te povratne informacije pomagajo narediti igro bolj zanimivo in odzivno, kar poveča igralčev občutek nadzora in vključenosti.