Sviluppa un ambiente di gioco coinvolgente per i tuoi giochi Godot con animazioni accattivanti.
Nello sviluppo del gioco, le animazioni svolgono un ruolo cruciale nella creazione di un'esperienza coinvolgente e coinvolgente per i giocatori. L'aggiunta di animazioni 2D al tuo gioco Godot può dare vita ai tuoi personaggi e ambienti, rendendoli visivamente più accattivanti e interattivi.
Fortunatamente, Godot fornisce potenti strumenti e funzionalità per creare e controllare facilmente animazioni 2D.
Impostazione del gioco Godot
Per iniziare, imposta una scena di gioco 2D di base in il motore di gioco Godot. Crea una nuova scena e aggiungi a CinematicoCorpo2D node come personaggio del giocatore. Dentro il CinematicoCorpo2D, aggiungere un CollisionShape2D con una forma rettangolare che rappresenta i limiti di collisione del giocatore.
Il codice utilizzato in questo articolo è disponibile in this Deposito GitHub ed è gratuito per l'uso con la licenza MIT.
Inoltre, aggiungi un Sprite animato nodo per gestire le animazioni del giocatore. Inoltre, assicurati di mappare le seguenti azioni di input nel tuo file
Mappa di input:Quindi, scrivi il codice GDScript per controllare il movimento del giocatore. Allega il seguente script al file CinematicoCorpo2D nodo:
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 += VELOCITÀ se Input.is_action_pressed("move_up"): velocity.y -= VELOCITÀ se Input.is_action_pressed("move_down"): velocity.y += VELOCITÀ velocity = move_and_slide (velocità)
Questo script imposta una velocità costante per il giocatore e consente loro di spostarsi a sinistra, a destra, in alto e in basso utilizzando i tasti freccia o WASD.
Aggiunta di SpriteSheet in AnimatedSprite
Ora configura il file Sprite animato utilizzare uno sprite sheet per le animazioni. Seleziona il Sprite animato nodo e passare al file Cornici sezione nella scheda delle proprietà del nodo. Qui, clicca sul Nuovi SpriteFrame pulsante.
Passa al Sprite Frame scheda situata nella parte inferiore dell'editor di Godot. Nel Sprite Frame scheda, fare clic sul Nuova animazione pulsante. Crea animazioni come camminare E oziare aggiungendo fotogrammi appropriati a ciascuna animazione.
Inoltre, hai la possibilità di creare altre animazioni, come sparare, saltare e arrampicarsi per un gioco platform. Successivamente, fai clic su Aggiungi frame da SpriteSheet pulsante per estrarre automaticamente i singoli fotogrammi dal foglio sprite.
Controllo delle animazioni tramite GDScript
Ora che hai impostato le tue animazioni, puoi controllarle a livello di codice utilizzando GDScript.
Riproduzione e arresto dell'animazione
Il controllo della riproduzione delle animazioni è essenziale per fornire esperienze dinamiche e interattive nel gioco. IL Sprite animato node in Godot offre metodi per riprodurre e fermare le animazioni secondo la tua logica di gioco.
Estendere il CinematicoCorpo2D nodo e gestire il controllo dell'animazione all'interno di _processo_fisico funzione. Puoi usare il play_animation E stop_animation input per attivare le azioni di animazione corrispondenti.
extends KinematicBody2Dfunc _physics_process (delta): # Riproduce l'animazione if Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Arresta l'animazione e ripristina il primo fotogramma if Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0
Mappando le azioni di input appropriate, puoi fornire ai giocatori il controllo sulla riproduzione dell'animazione nel tuo gioco.
Ad esempio, potresti associare il file play_animation azione alla pressione di un pulsante o a un evento specifico nel gioco, consentendo al giocatore di attivare una sequenza di animazione in un momento desiderato. Inoltre, puoi trovare musica senza copyright da riprodurre mentre l'animazione è in esecuzione.
Allo stesso modo, puoi attivare il stop_animation azioni per interrompere completamente l'animazione.
Incorporando questi meccanismi di controllo dell'animazione, puoi aggiungere profondità e interattività alle animazioni del tuo gioco, creando esperienze più coinvolgenti e coinvolgenti per i tuoi giocatori.
Rotazione dell'animazione
La rotazione dell'animazione può aggiungere interesse visivo e varietà al tuo gioco. È possibile ruotare a livello di codice il file Sprite animato nodo per modificare l'orientamento dell'animazione. È possibile applicare la rotazione in gradi utilizzando il ruotare() metodo.
extends KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Ruota l'animazione di 45 gradi in senso orario $AnimatedSprite.rotate (deg2rad (45))
Quando si premono i pulsanti associati al ruota_animazione (puoi definire questa azione nella tua mappa di input), the ruotare() metodo è chiamato sul Sprite animato nodo. Ruota il nodo di 45 gradi in senso orario usando deg2rad() per convertire i gradi in radianti.
Tieni presente che applicherà la rotazione all'intero Sprite animato nodo, inclusi tutti i fotogrammi dell'animazione. Pertanto, se si desidera ruotare solo fotogrammi specifici, potrebbe essere necessario suddividerli in parti separate Sprite animato nodi o utilizzare altre tecniche come capovolgere i singoli fotogrammi.
Capovolgere l'animazione
Capovolgere l'animazione orizzontalmente o verticalmente può essere utile per riflettere i cambiamenti nella direzione del personaggio. In Godot, il Sprite animato node fornisce proprietà per controllare il capovolgimento.
Per capovolgere l'animazione orizzontalmente, impostare il flip_h proprietà del Sprite animato A VERO. Questo rispecchierà l'animazione lungo l'asse orizzontale. Allo stesso modo, impostando il flip_v proprietà a VERO rispecchierà l'animazione lungo l'asse verticale.
estende KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # o $AnimatedSprite.flip_v = true per il capovolgimento verticale
Se il giocatore preme il flip_animation azione di input quindi impostare il flip_h proprietà del Sprite animato A VERO. Questo capovolgerà l'animazione orizzontalmente.
Utilizzo dei segnali in AnimatedSprite
Oltre a controllare le animazioni in modo programmatico, Godot fornisce un potente sistema di eventi chiamato segnali. I segnali ti consentono di rispondere a eventi o cambiamenti specifici che si verificano durante l'esecuzione del tuo gioco.
In caso di Sprite animato, ci sono due segnali importanti che puoi utilizzare: animazione_finita() E frame_changed().
1. animation_finished() Segnale
IL animazione_finita() il segnale viene emesso quando l'animazione raggiunge l'ultimo fotogramma, durante una singola riproduzione o quando si ripete. Questo segnale è utile quando si desidera eseguire azioni o attivare eventi al completamento di un'animazione.
extends KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Esegue azioni o attiva eventi print("Animation finito!") # Codice aggiuntivo qui...
Collega il animazione_finita() segnale del Sprite animato al _on_animation_finished() metodo nello stesso script utilizzando il metodo Collegare() funzione.
Al termine della riproduzione dell'animazione, è possibile eseguire una logica personalizzata o attivare altre funzionalità utilizzando il file _on_animation_finished() metodo.
2. frame_changed() Segnale
IL frame_changed() segnale viene emesso ogni volta che il fotogramma corrente dell'animazione cambia. Ciò può verificarsi durante la riproduzione dell'animazione o quando si modifica il fotogramma a livello di codice. È possibile utilizzare questo segnale per rilevare i cambiamenti di frame e reagire di conseguenza.
extends KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Esegue azioni basate sul fotogramma corrente var currentFrame = $AnimatedSprite.frame print("Current frame: ", currentFrame) # Codice aggiuntivo Qui...
Collega il frame_changed() segnale del Sprite animato al _on_frame_changed() metodo nello stesso script. Quando la cornice cambia, puoi accedere alla cornice corrente usando il _on_frame_changed() metodo ed eseguire azioni o logica in base al valore del frame.
Utilizzando i segnali, puoi rispondere agli eventi di animazione come il completamento o le modifiche ai fotogrammi e incorporare comportamenti dinamici o attivare azioni specifiche nel tuo gioco.
Rendi i giochi Godot più coinvolgenti usando le animazioni
L'aggiunta di animazioni 2D ai tuoi giochi Godot può migliorare notevolmente l'esperienza complessiva del giocatore. Le animazioni danno vita ai personaggi, rendendo i loro movimenti e le loro azioni visivamente più accattivanti. Incorporando animazioni per varie azioni come camminare, correre, attaccare e saltare, puoi creare un ambiente di gioco dinamico e coinvolgente.
Inoltre, puoi anche utilizzare le animazioni per fornire un feedback visivo al giocatore. Questo feedback aiuta a rendere il gioco più coinvolgente e reattivo, migliorando il senso di controllo e coinvolgimento del giocatore.