Dezvoltați un mediu de joc captivant pentru jocurile dvs. Godot cu animații captivante.

În dezvoltarea jocului, animațiile joacă un rol crucial în crearea unei experiențe captivante și captivante pentru jucători. Adăugarea de animații 2D la jocul Godot vă poate aduce personajele și mediile la viață, făcându-le mai atractive din punct de vedere vizual și mai interactive.

Din fericire, Godot oferă instrumente și funcții puternice pentru a crea și controla cu ușurință animațiile 2D.

Configurarea jocului Godot

Pentru a începe, configurați o scenă de joc 2D de bază motorul de joc Godot. Creați o scenă nouă și adăugați un KinematicBody2D nod ca personaj jucător. În interiorul KinematicBody2D, adauga o CollisionShape2D cu o formă dreptunghiulară care reprezintă limitele de coliziune ale jucătorului.

Codul folosit în acest articol este disponibil în acest articol Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.

În plus, adăugați un AnimatedSprite nod pentru a gestiona animațiile jucătorului. Mai mult, asigurați-vă că mapați următoarele acțiuni de intrare în dvs

instagram viewer
Hartă de intrare:

Apoi, scrieți codul GDScript pentru a controla mișcarea jucătorului. Atașați următorul script la KinematicBody2D nodul:

 extinde KinematicBody2Dconst SPEED = 200func _physics_process (delta): var viteza = Vector2.ZERO dacă Input.is_action_pressed("move_left"): velocity.x -= SPEED dacă Input.is_action_pressed("move_right"): velocity.x += SPEED dacă Input.is_action_pressed("move_up"): velocity.y -= SPEED dacă Input.is_action_pressed("move_down"): velocity.y += SPEED viteza = move_and_glide (viteza)

Acest script stabilește o viteză constantă pentru jucător și îi permite să se miște la stânga, la dreapta, în sus și în jos folosind tastele săgeți sau WASD.

Adăugarea SpriteSheet în AnimatedSprite

Acum, configurați AnimatedSprite pentru a utiliza o foaie de sprite pentru animații. Selectează AnimatedSprite nodul și navigați la Rame secțiunea din fila de proprietăți a nodului. Aici, faceți clic pe SpriteFrames noi buton.

Comutați la SpriteFrames fila situată în partea de jos a editorului Godot. În SpriteFrames fila, faceți clic pe Animație nouă buton. Creați animații precum mers pe jos și inactiv prin adăugarea de cadre adecvate la fiecare animație.

În plus, aveți opțiunea de a crea alte animații, cum ar fi trageri, sărituri și cățărare pentru un joc platformer. După aceea, faceți clic pe Adăugați cadre din SpriteSheet butonul pentru a extrage automat cadre individuale din foaia de sprite.

Controlul animațiilor folosind GDScript

Acum că ați configurat animațiile, le puteți controla programatic folosind GDScript.

Redarea și oprirea animației

Controlul redării animațiilor este esențial pentru a oferi experiențe dinamice și interactive în jocul tău. The AnimatedSprite nodul din Godot oferă metode de a juca și de a opri animațiile conform logicii jocului.

Extindeți KinematicBody2D nod și gestionați controlul animației în cadrul _proces_fizică funcţie. Puteți folosi play_animation și stop_animation intrări pentru a declanșa acțiunile de animație corespunzătoare.

 extinde KinematicBody2Dfunc _physics_process (delta): # Redați animația dacă Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Opriți animația și resetați la primul cadru dacă Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0

Prin maparea acțiunilor de intrare corespunzătoare, puteți oferi jucătorilor controlul asupra redării animației din jocul dvs.

De exemplu, ați putea lega play_animation acțiune la apăsarea unui buton sau la un anumit eveniment din jocul dvs., permițând jucătorului să declanșeze o secvență de animație la momentul dorit. În plus, poți găsiți muzică fără drepturi de autor pentru a juca în timp ce animația rulează.

În mod similar, puteți declanșa stop_animation acțiuni pentru a opri complet animația.

Încorporând aceste mecanisme de control al animației, poți adăuga profunzime și interactivitate animațiilor jocului tău, creând experiențe mai captivante și mai captivante pentru jucătorii tăi.

Rotirea animației

Rotirea animației poate adăuga interes vizual și varietate jocului dvs. Puteți roti programatic AnimatedSprite nod pentru a schimba orientarea animației. Puteți aplica rotația în grade folosind roti() metodă.

 extinde KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Rotiți animația cu 45 de grade în sensul acelor de ceasornic $AnimatedSprite.rotate (deg2rad (45))

Când apăsați butoanele asociate cu rotate_animation (puteți defini această acțiune în harta de intrare), the roti() metoda este apelată pe AnimatedSprite nodul. Rotește nodul cu 45 de grade în sensul acelor de ceasornic folosind deg2rad() pentru a converti gradele în radiani.

Rețineți că va aplica rotația întregului AnimatedSprite nod, inclusiv toate cadrele animației. Prin urmare, dacă doriți să rotiți numai anumite cadre, poate fi necesar să le împărțiți în separat AnimatedSprite noduri sau utilizați alte tehnici, cum ar fi răsturnarea cadrelor individuale.

Întoarcerea animației

Întoarcerea animației pe orizontală sau pe verticală poate fi utilă pentru reflectarea schimbărilor în direcția caracterului. În Godot, cel AnimatedSprite nodul oferă proprietăți pentru a controla răsturnarea.

Pentru a răsturna animația pe orizontală, setați flip_h proprietatea AnimatedSprite la Adevărat. Aceasta va oglindi animația de-a lungul axei orizontale. În mod similar, setarea flip_v proprietate la Adevărat va oglindi animația de-a lungul axei verticale.

 extinde KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # sau $AnimatedSprite.flip_v = true pentru inversare verticală

Dacă jucătorul apasă pe flip_animation acțiunea de introducere, apoi setați flip_h proprietatea AnimatedSprite la Adevărat. Aceasta va întoarce animația pe orizontală.

Utilizarea semnalelor în AnimatedSprite

Pe lângă controlul programatic al animațiilor, Godot oferă un sistem puternic de evenimente numit semnale. Semnalele vă permit să răspundeți la anumite evenimente sau modificări care apar în timpul execuției jocului.

În cazul în care AnimatedSprite, există două semnale importante pe care le puteți folosi: animație_terminată() și frame_changed().

1. animation_finished() Semnal

The animație_terminată() semnalul este emis atunci când animația ajunge la ultimul cadru, fie în timpul unei singure redări, fie când este în buclă. Acest semnal este util atunci când doriți să efectuați acțiuni sau să declanșați evenimente când se termină o animație.

 extinde KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Efectuează acțiuni sau declanșează evenimente print("Animation terminat!") # Cod suplimentar aici...

Conectați animație_terminată() semnal al AnimatedSprite la _on_animation_finished() metoda în același script folosind conectați() funcţie.

Când se termină redarea animației, puteți executa o logică personalizată sau puteți declanșa alte funcționalități utilizând _on_animation_finished() metodă.

2. frame_changed() Semnal

The frame_changed() semnalul este emis ori de câte ori se modifică cadrul curent al animației. Acest lucru se poate întâmpla atunci când animația este redată sau când modificați în mod programatic cadrul. Puteți utiliza acest semnal pentru a detecta modificările cadrului și pentru a reacționa în consecință.

 extinde KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("cadru_schimbat", self, "_on_frame_changed")func _on_frame_changed(): # Efectuați acțiuni bazate pe cadrul curent var currentFrame = $AnimatedSprite.frame print("Current frame: ", currentFrame) # Cod suplimentar Aici...

Conectați frame_changed() semnal al AnimatedSprite la _on_frame_changed() metoda în același script. Când cadrul se schimbă, puteți accesa cadrul curent folosind _on_frame_changed() metoda și efectuează acțiuni sau logica pe baza valorii cadrului.

Utilizând semnale, puteți răspunde la evenimentele de animație, cum ar fi modificările de finalizare sau cadre și puteți încorpora comportamente dinamice sau declanșați acțiuni specifice în jocul dvs.

Faceți jocurile Godot mai captivante folosind animații

Adăugarea de animații 2D la jocurile tale Godot poate îmbunătăți considerabil experiența generală a jucătorului. Animațiile dau viață personajelor, făcând mișcările și acțiunile lor mai atractive din punct de vedere vizual. Încorporând animații pentru diverse acțiuni, cum ar fi mersul, alergarea, atacul și săritul, puteți crea un mediu de joc dinamic și captivant.

Mai mult, puteți folosi și animații pentru a oferi feedback vizual jucătorului. Acest feedback ajută la ca jocul să fie mai captivant și mai receptiv, sporind sentimentul de control și implicare al jucătorului.