Vytvořte pohlcující herní prostředí pro své hry Godot s podmanivými animacemi.
Při vývoji her hrají animace zásadní roli při vytváření poutavého a pohlcujícího zážitku pro hráče. Přidáním 2D animací do vaší hry Godot můžete oživit vaše postavy a prostředí, díky čemuž budou vizuálně přitažlivější a interaktivnější.
Naštěstí Godot poskytuje výkonné nástroje a funkce pro snadné vytváření a ovládání 2D animací.
Nastavení hry Godot
Chcete-li začít, nastavte základní 2D herní scénu herní engine Godot. Vytvořte novou scénu a přidejte a KinematicBody2D uzel jako postava hráče. Uvnitř KinematicBody2D, přidat CollisionShape2D s obdélníkovým tvarem, který představuje hráčské hranice kolize.
Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.
Navíc přidejte AnimatedSprite uzel pro zpracování animací přehrávače. Dále se ujistěte, že jste namapovali následující vstupní akce Vstupní mapa:
Dále napište kód GDScript pro ovládání pohybu hráče. Připojte následující skript k KinematicBody2D uzel:
rozšiřuje 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 = move_and_slide (rychlost)
Tento skript nastavuje hráči konstantní rychlost a umožňuje mu pohybovat se doleva, doprava, nahoru a dolů pomocí kláves se šipkami nebo WASD.
Přidání SpriteSheet do AnimatedSprite
Nyní nakonfigurujte AnimatedSprite pro použití sprite listu pro animace. Vybrat AnimatedSprite uzel a přejděte do Rámečky sekce na kartě vlastností uzlu. Zde klikněte na Nové SpriteFrames knoflík.
Přepněte na SpriteFrames umístěnou ve spodní části editoru Godot. V SpriteFrames klepněte na Nová animace knoflík. Vytvářejte animace jako např Procházka a líný přidáním vhodných snímků ke každé animaci.
Navíc máte možnost vytvářet další animace, jako je střelba, skákání a šplhání pro plošinovkovou hru. Poté klikněte na Přidejte snímky ze SpriteSheet tlačítko pro automatické extrahování jednotlivých snímků z listu sprite.
Ovládání animací pomocí GDScript
Nyní, když máte nastavené animace, můžete je ovládat programově pomocí GDScript.
Přehrávání a zastavení animace
Ovládání přehrávání animací je zásadní pro poskytování dynamických a interaktivních zážitků ve vaší hře. The AnimatedSprite uzel v Godot nabízí metody pro přehrávání a zastavení animací podle vaší herní logiky.
Prodlužte KinematicBody2D a manipulujte s ovládáním animace v rámci _fyzikální_proces funkce. Můžete použít play_animation a stop_animace vstupy ke spuštění odpovídajících animačních akcí.
rozšiřuje KinematicBody2Dfunc _physics_process (delta): # Přehrajte animaci, pokud Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Zastavte animaci a obnovte první snímek, pokud Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0
Mapováním příslušných vstupních akcí můžete hráčům poskytnout kontrolu nad přehráváním animací ve vaší hře.
Můžete například svázat play_animation akce na stisknutí tlačítka nebo konkrétní událost ve vaší hře, což umožňuje hráči spustit animační sekvenci v požadovaný okamžik. Navíc můžete najít hudbu bez autorských práv přehrát, zatímco animace běží.
Podobně můžete spustit stop_animace akce k úplnému zastavení animace.
Začleněním těchto mechanismů ovládání animací můžete animacím vaší hry přidat hloubku a interaktivitu a vytvořit tak pro své hráče poutavější a pohlcující zážitky.
Otáčení animace
Otáčení animace může vaší hře přidat vizuální zajímavost a rozmanitost. Můžete programově otáčet AnimatedSprite uzel pro změnu orientace animace. Otočení ve stupních můžete použít pomocí točit se() metoda.
rozšiřuje KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Otočit animaci o 45 stupňů ve směru hodinových ručiček $AnimatedSprite.rotate (deg2rad (45))
Když stisknete tlačítka spojená s animace rotace (tuto akci můžete definovat ve své vstupní mapě), točit se() metoda je volána na AnimatedSprite uzel. Otočí uzel o 45 stupňů ve směru hodinových ručiček pomocí deg2rad() pro převod stupňů na radiány.
Mějte na paměti, že použije rotaci na celek AnimatedSprite uzlu, včetně všech snímků animace. Pokud tedy chcete otáčet pouze určité snímky, možná je budete muset rozdělit na samostatné AnimatedSprite uzly nebo použít jiné techniky, jako je překlápění jednotlivých snímků.
Převrácení animace
Převrácení animace vodorovně nebo svisle může být užitečné pro zobrazení změn ve směru znaků. V Godot, AnimatedSprite uzel poskytuje vlastnosti pro ovládání překlápění.
Chcete-li animaci vodorovně převrátit, nastavte flip_h vlastnictvím AnimatedSprite na skutečný. Tím se animace zrcadlí podél vodorovné osy. Podobně nastavení flip_v majetek do skutečný bude zrcadlit animaci podél svislé osy.
rozšiřuje KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # nebo $AnimatedSprite.flip_v = true pro vertikální překlápění
Pokud hráč stiskne tlačítko flip_animation vstupní akci a poté nastavte flip_h vlastnictvím AnimatedSprite na skutečný. Tím se animace vodorovně převrátí.
Využití signálů v AnimatedSprite
Kromě programového ovládání animací poskytuje Godot výkonný systém událostí nazývaný signály. Signály vám umožňují reagovat na konkrétní události nebo změny, ke kterým dojde během hraní vaší hry.
V případě AnimatedSprite, existují dva důležité signály, které můžete použít: animace_dokončena() a frame_changed().
1. signál animace_dokončeno().
The animace_dokončena() signál je vysílán, když animace dosáhne posledního snímku, buď během jednoho přehrávání, nebo při opakování. Tento signál je užitečný, když chcete provádět akce nebo spouštět události po dokončení animace.
rozšiřuje KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished") funnc _on_animation_finished(): # Proveďte akce nebo spusťte události print("Animace hotovo!") # Další kód zde...
Připojte animace_dokončena() signál o AnimatedSprite k _on_animation_finished() metodou ve stejném skriptu pomocí připojit() funkce.
Když se animace přehraje, můžete spustit vlastní logiku nebo spouštět další funkce pomocí _on_animation_finished() metoda.
2. frame_changed() Signál
The frame_changed() signál je vysílán vždy, když se aktuální snímek animace změní. K tomu může dojít při přehrávání animace nebo při programové úpravě rámce. Tento signál můžete použít k detekci změn rámce a odpovídajícím způsobem reagovat.
rozšiřuje KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Provádět akce na základě aktuálního snímku var currentFrame = $AnimatedSprite.frame print("Aktuální snímek: ", currentFrame) # Další kód tady...
Připojte frame_changed() signál o AnimatedSprite k _on_frame_changed() metodou ve stejném skriptu. Když se snímek změní, můžete k aktuálnímu snímku přistupovat pomocí _on_frame_changed() a provádět akce nebo logiku na základě hodnoty rámce.
Využitím signálů můžete reagovat na události animace, jako je dokončení nebo změny snímku, a začlenit dynamické chování nebo spouštět konkrétní akce ve vaší hře.
Udělejte hry Godot poutavějšími pomocí animací
Přidání 2D animací do her Godot může výrazně zlepšit celkový zážitek z hráče. Animace oživují postavy a činí jejich pohyby a akce vizuálně přitažlivějšími. Začleněním animací pro různé akce, jako je chůze, běh, útočení a skákání, můžete vytvořit dynamické a pohlcující herní prostředí.
Kromě toho můžete také použít animace k poskytnutí vizuální zpětné vazby přehrávači. Tato zpětná vazba pomáhá k tomu, aby byla hra poutavější a citlivější, čímž se zvyšuje hráčský pocit kontroly a zapojení.