Vytvorte pohlcujúce herné prostredie pre svoje hry Godot s podmanivými animáciami.

Pri vývoji hier zohrávajú animácie kľúčovú úlohu pri vytváraní pútavého a pohlcujúceho zážitku pre hráčov. Pridaním 2D animácií do hry Godot môžete oživiť vaše postavy a prostredia, vďaka čomu budú vizuálne príťažlivejšie a interaktívnejšie.

Našťastie Godot poskytuje výkonné nástroje a funkcie na jednoduché vytváranie a ovládanie 2D animácií.

Nastavenie hry Godot

Ak chcete začať, nastavte základnú 2D hernú scénu herný engine Godot. Vytvorte novú scénu a pridajte a KinematicBody2D uzol ako postava hráča. Vnútri KinematicBody2D, pridaj CollisionShape2D s obdĺžnikovým tvarom, ktorý predstavuje hráčove hranice kolízie.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Okrem toho pridajte AnimatedSprite uzol na spracovanie animácií prehrávača. Okrem toho sa uistite, že ste namapovali nasledujúce vstupné akcie Vstupná mapa:

Ďalej napíšte kód GDScript na ovládanie pohybu hráča. Pripojte nasledujúci skript k KinematicBody2D uzol:

instagram viewer
 rozširuje 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 rýchlosť = move_and_slide (rýchlosť)

Tento skript nastavuje hráčovi konštantnú rýchlosť a umožňuje mu pohybovať sa doľava, doprava, nahor a nadol pomocou kláves so šípkami alebo WASD.

Pridanie SpriteSheet do AnimatedSprite

Teraz nakonfigurujte AnimatedSprite na použitie hárku sprite pre animácie. Vyberte AnimatedSprite a prejdite na Rámy sekcii na karte vlastností uzla. Tu kliknite na Nové rámy SpriteFrames tlačidlo.

Prepnúť na SpriteFrames v spodnej časti editora Godot. V SpriteFrames kliknite na kartu Nová animácia tlačidlo. Vytvárajte animácie ako napr chodiť a nečinný pridaním vhodných snímok do každej animácie.

Okrem toho máte možnosť vytvárať ďalšie animácie, ako je streľba, skákanie a šplhanie pre platformovú hru. Potom kliknite na Pridajte snímky zo SpriteSheet tlačidlo na automatické extrahovanie jednotlivých snímok z hárku sprite.

Ovládanie animácií pomocou GDScript

Teraz, keď máte nastavené animácie, môžete ich ovládať programovo pomocou GDScript.

Prehrávanie a zastavenie animácie

Ovládanie prehrávania animácií je nevyhnutné na poskytovanie dynamických a interaktívnych zážitkov vo vašej hre. The AnimatedSprite uzol v Godot ponúka metódy na prehrávanie a zastavenie animácií podľa logiky vašej hry.

Predĺžte KinematicBody2D a manipulujte s ovládaním animácie v rámci _fyzikálny_proces funkciu. Môžete použiť play_animation a zastaviť_animáciu vstupy na spustenie príslušných animačných akcií.

 rozširuje KinematicBody2Dfunc _physics_process (delta): # Prehrajte animáciu, ak Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Zastavte animáciu a obnovte prvú snímku, ak Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0

Mapovaním príslušných vstupných akcií môžete hráčom poskytnúť kontrolu nad prehrávaním animácií vo vašej hre.

Môžete napríklad zviazať play_animation akciu na stlačenie tlačidla alebo konkrétnu udalosť vo vašej hre, čo umožňuje hráčovi spustiť sekvenciu animácie v požadovanom okamihu. Navyše môžete nájsť hudbu bez autorských práv hrať, kým je spustená animácia.

Podobne môžete spustiť zastaviť_animáciu akcie na úplné zastavenie animácie.

Začlenením týchto mechanizmov na ovládanie animácií môžete animáciám svojej hry pridať hĺbku a interaktivitu, čím vytvoríte pre svojich hráčov pútavejšie a pohlcujúcejšie zážitky.

Otáčanie animácie

Otáčanie animácie môže vašej hre pridať vizuálny záujem a rozmanitosť. Môžete programovo otáčať AnimatedSprite uzol na zmenu orientácie animácie. Otočenie v stupňoch môžete použiť pomocou točiť sa() metóda.

 rozširuje KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Otočiť animáciu o 45 stupňov v smere hodinových ručičiek $AnimatedSprite.rotate (deg2rad (45))

Keď stlačíte tlačidlá spojené s animácia otáčania (túto akciu môžete definovať vo svojej vstupnej mape), točiť sa() metóda sa volá na AnimatedSprite uzol. Otočí uzol o 45 stupňov v smere hodinových ručičiek pomocou deg2rad() na prevod stupňov na radiány.

Majte na pamäti, že použije rotáciu na celok AnimatedSprite uzol vrátane všetkých snímok animácie. Preto, ak chcete otáčať iba konkrétne snímky, možno ich budete musieť rozdeliť na samostatné AnimatedSprite uzly alebo použiť iné techniky, ako je preklápanie jednotlivých snímok.

Prevrátenie animácie

Horizontálne alebo vertikálne prevrátenie animácie môže byť užitočné na vyjadrenie zmien v smere znakov. V Godot, AnimatedSprite node poskytuje vlastnosti na ovládanie preklápania.

Ak chcete animáciu prevrátiť vodorovne, nastavte flip_h majetok z AnimatedSprite do pravda. Tým sa animácia zrkadlí pozdĺž vodorovnej osi. Podobne nastavenie flip_v majetok do pravda zrkadlí animáciu pozdĺž zvislej osi.

 rozširuje KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # alebo $AnimatedSprite.flip_v = true pre vertikálne preklápanie

Ak hráč stlačí tlačidlo flip_animation vstupná akcia a potom nastavte flip_h majetok z AnimatedSprite do pravda. Tým sa animácia vodorovne prevráti.

Využitie signálov v AnimatedSprite

Okrem programového ovládania animácií Godot poskytuje výkonný systém udalostí nazývaný signály. Signály vám umožňujú reagovať na konkrétne udalosti alebo zmeny, ktoré sa vyskytnú počas vykonávania vašej hry.

V prípade AnimatedSprite, existujú dva dôležité signály, ktoré môžete použiť: animácia_dokončená() a frame_changed().

1. Animácia_dokončená() signál

The animácia_dokončená() signál sa vyšle, keď animácia dosiahne poslednú snímku, buď počas jedného prehrávania, alebo keď sa cykluje. Tento signál je užitočný, keď chcete vykonať akcie alebo spustiť udalosti po dokončení animácie.

 rozširuje KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished") funnc _on_animation_finished(): # Vykonať akcie alebo spustiť udalosti print("Animácia hotovo!") # Dodatočný kód tu...

Pripojte animácia_dokončená() signál o AnimatedSprite k _on_animation_finished() metóda v rovnakom skripte pomocou pripojiť () funkciu.

Keď sa animácia skončí, môžete spustiť vlastnú logiku alebo spustiť iné funkcie pomocou _on_animation_finished() metóda.

2. frame_changed() Signál

The frame_changed() signál sa vyšle vždy, keď sa zmení aktuálna snímka animácie. Môže k tomu dôjsť pri prehrávaní animácie alebo pri programovej úprave rámca. Tento signál môžete použiť na detekciu zmien snímok a zodpovedajúcim spôsobom reagovať.

 rozširuje KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Vykonávať akcie na základe aktuálneho rámca var currentFrame = $AnimatedSprite.frame print("Aktuálny rámec: ", currentFrame) # Ďalší kód tu...

Pripojte frame_changed() signál o AnimatedSprite k _on_frame_changed() metóda v rovnakom skripte. Keď sa snímka zmení, k aktuálnej snímke sa dostanete pomocou tlačidla _on_frame_changed() a vykonávať akcie alebo logiku na základe hodnoty rámca.

Využitím signálov môžete reagovať na udalosti animácie, ako je dokončenie alebo zmeny snímok, a začleniť dynamické správanie alebo spustiť špecifické akcie vo vašej hre.

Urobte hry Godot pútavejšími pomocou animácií

Pridanie 2D animácií do hier Godot môže výrazne zlepšiť celkový zážitok z hráča. Animácie oživujú postavy, vďaka čomu sú ich pohyby a činy vizuálne príťažlivejšie. Začlenením animácií pre rôzne akcie, ako je chôdza, beh, útok a skákanie, môžete vytvoriť dynamické a pohlcujúce herné prostredie.

Okrem toho môžete použiť animácie na poskytnutie vizuálnej spätnej väzby hráčovi. Táto spätná väzba pomáha k tomu, aby bola hra pútavejšia a citlivejšia, čím sa u hráča zvyšuje pocit kontroly a zapojenia.