Stwórz wciągające środowisko rozgrywki dla swoich gier Godot z urzekającymi animacjami.
W tworzeniu gier animacje odgrywają kluczową rolę w tworzeniu wciągających i wciągających doświadczeń dla graczy. Dodanie animacji 2D do gry Godot może ożywić postacie i otoczenie, czyniąc je bardziej atrakcyjnymi wizualnie i interaktywnymi.
Na szczęście Godot zapewnia potężne narzędzia i funkcje do łatwego tworzenia i kontrolowania animacji 2D.
Przygotowanie gry Godot
Aby rozpocząć, skonfiguruj podstawową scenę gry 2D w silnik gry Godota. Utwórz nową scenę i dodaj plik KinematicBody2D node jako postać gracza. W środku KinematicBody2D, dodać KolizjaKształt2D z kształtem prostokąta, który reprezentuje granice kolizji gracza.
Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.
Dodatkowo dodaj an Animowany Sprite węzeł do obsługi animacji gracza. Ponadto upewnij się, że zmapowałeś następujące działania wejściowe w swoim Mapa wejść:
Następnie napisz kod GDScript, aby sterować ruchem gracza. Dołącz poniższy skrypt do pliku KinematicBody2D węzeł:
rozszerza KinematicBody2Dconst SPEED = 200func _proces_fizyki (delta): var prędkość = Wektor2.ZERO, jeśli Input.is_action_pressed("move_left"): prędkość.x -= SZYBKOŚĆ, jeśli Input.is_action_pressed("move_right"): prędkość.x += PRĘDKOŚĆ, jeśli Input.is_action_pressed("move_up"): prędkość.y -= PRĘDKOŚĆ, jeśli Input.is_action_pressed("move_down"): prędkość.y += PRĘDKOŚĆ prędkość = move_and_slide (prędkość)
Ten skrypt ustawia stałą prędkość gracza i pozwala mu poruszać się w lewo, w prawo, w górę iw dół za pomocą klawiszy strzałek lub WASD.
Dodawanie SpriteSheet w AnimatedSprite
Teraz skonfiguruj Animowany Sprite używać arkusza sprite do animacji. Wybierz Animowany Sprite węzeł i przejdź do Ramki sekcji w zakładce właściwości węzła. Tutaj kliknij na Nowe ramki Sprite przycisk.
Przełącz na Ramki Sprite zakładka znajdująca się na dole edytora Godota. w Ramki Sprite zakładkę, kliknij na Nowa animacja przycisk. Twórz animacje, np chodzić I bezczynny dodając odpowiednie klatki do każdej animacji.
Dodatkowo masz możliwość tworzenia innych animacji, takich jak strzelanie, skakanie i wspinaczka do gry platformowej. Następnie kliknij na Dodaj ramki ze SpriteSheet aby automatycznie wyodrębnić poszczególne klatki z arkusza sprite.
Sterowanie animacjami za pomocą GDScript
Teraz, gdy masz już skonfigurowane animacje, możesz sterować nimi programowo za pomocą GDScript.
Odtwarzanie i zatrzymywanie animacji
Kontrolowanie odtwarzania animacji jest niezbędne do zapewnienia dynamicznych i interaktywnych wrażeń w grze. The Animowany Sprite node w Godot oferuje metody odtwarzania i zatrzymywania animacji zgodnie z logiką gry.
Przedłużyć KinematicBody2D node i obsługiwać kontrolę animacji w ramach _fizyka_proces funkcjonować. Możesz użyć odtwórz_animację I stop_animacja wejść, aby uruchomić odpowiednie akcje animacji.
extends KinematicBody2Dfunc _physics_process (delta): # Odtwórz animację, jeśli Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Zatrzymaj animację i zresetuj do pierwszej klatki, jeśli Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0
Mapując odpowiednie działania wejściowe, możesz zapewnić graczom kontrolę nad odtwarzaniem animacji w grze.
Na przykład możesz powiązać plik odtwórz_animację akcję do naciśnięcia przycisku lub określonego zdarzenia w grze, umożliwiając graczowi wyzwolenie sekwencji animacji w wybranym momencie. Dodatkowo możesz znaleźć muzykę wolną od praw autorskich grać, gdy animacja jest uruchomiona.
Podobnie możesz wywołać stop_animacja czynności, aby całkowicie zatrzymać animację.
Włączając te mechanizmy kontroli animacji, możesz dodać głębi i interaktywności do animacji swojej gry, tworząc bardziej wciągające i wciągające wrażenia dla graczy.
Obracanie animacji
Obracanie animacji może dodać wizualnej atrakcyjności i różnorodności do twojej gry. Możesz programowo obrócić plik Animowany Sprite węzeł, aby zmienić orientację animacji. Możesz zastosować obrót w stopniach za pomocą obracać się() metoda.
extends KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Obróć animację o 45 stopni zgodnie z ruchem wskazówek zegara $AnimatedSprite.rotate (deg2rad (45))
Po naciśnięciu przycisków powiązanych z obracanie_animacji (możesz zdefiniować tę akcję na swojej mapie wejściowej), the obracać się() metoda jest wywoływana na Animowany Sprite węzeł. Obraca węzeł o 45 stopni w kierunku zgodnym z ruchem wskazówek zegara za pomocą deg2rad() zamienić stopnie na radiany.
Pamiętaj, że spowoduje to obrót dla całości Animowany Sprite węzeł, w tym wszystkie klatki animacji. Dlatego jeśli chcesz obracać tylko określone klatki, może być konieczne podzielenie ich na osobne Animowany Sprite węzłów lub użyj innych technik, takich jak odwracanie pojedynczych klatek.
Odwracanie animacji
Odwrócenie animacji w poziomie lub w pionie może być przydatne do odzwierciedlenia zmian w kierunku postaci. W Godot, Animowany Sprite węzeł zapewnia właściwości do sterowania odwracaniem.
Aby odwrócić animację w poziomie, ustaw flip_h własność r Animowany Sprite Do PRAWDA. Spowoduje to odbicie animacji wzdłuż osi poziomej. Podobnie ustawienie flip_v nieruchomość do PRAWDA odbije animację wzdłuż osi pionowej.
extends KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # lub $AnimatedSprite.flip_v = true dla przerzucania w pionie
Jeśli gracz naciśnie przycisk flip_animacja wprowadź akcję, a następnie ustaw flip_h własność r Animowany Sprite Do PRAWDA. Spowoduje to odwrócenie animacji w poziomie.
Wykorzystanie sygnałów w AnimatedSprite
Oprócz programowego sterowania animacjami, Godot zapewnia potężny system zdarzeń zwany sygnałami. Sygnały umożliwiają reagowanie na określone zdarzenia lub zmiany, które zachodzą podczas wykonywania gry.
W przypadku Animowany Sprite, istnieją dwa ważne sygnały, których możesz użyć: animacja_zakończona() I zmieniona_ramka().
1. animacja_zakończona() Sygnał
The animacja_zakończona() sygnał jest emitowany, gdy animacja osiągnie ostatnią klatkę, albo podczas pojedynczego odtwarzania, albo podczas zapętlenia. Ten sygnał jest przydatny, gdy chcesz wykonać działania lub wyzwolić zdarzenia po zakończeniu animacji.
rozszerza KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Wykonuj akcje lub wyzwalaj zdarzenia print("Animacja gotowe!") # Dodatkowy kod tutaj...
Podłącz animacja_zakończona() sygnał z Animowany Sprite do _on_animacja_zakończona() metoda w tym samym skrypcie przy użyciu metody łączyć() funkcjonować.
Po zakończeniu odtwarzania animacji możesz wykonać niestandardową logikę lub uruchomić inne funkcje za pomocą _on_animacja_zakończona() metoda.
2. frame_changed() Sygnał
The zmieniona_ramka() sygnał jest emitowany za każdym razem, gdy zmienia się bieżąca klatka animacji. Może się to zdarzyć, gdy animacja jest odtwarzana lub gdy programowo modyfikujesz ramkę. Możesz użyć tego sygnału do wykrywania zmian ramek i odpowiednio na nie reagować.
rozszerza KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Wykonaj akcje na podstawie bieżącej klatki var currentFrame = $AnimatedSprite.frame print("Current frame: ", currentFrame) # Dodatkowy kod Tutaj...
Podłącz zmieniona_ramka() sygnał z Animowany Sprite do _on_frame_changed() metoda w tym samym skrypcie. Gdy ramka się zmieni, możesz uzyskać dostęp do bieżącej klatki za pomocą _on_frame_changed() metodę i wykonać akcje lub logikę w oparciu o wartość ramki.
Wykorzystując sygnały, możesz reagować na zdarzenia animacji, takie jak ukończenie lub zmiany klatek, i włączać dynamiczne zachowania lub wyzwalać określone działania w swojej grze.
Spraw, aby gry Godot były bardziej wciągające dzięki animacjom
Dodanie animacji 2D do gier Godot może znacznie poprawić ogólne wrażenia gracza. Animacje ożywiają postacie, sprawiając, że ich ruchy i działania są bardziej atrakcyjne wizualnie. Włączając animacje różnych czynności, takich jak chodzenie, bieganie, atakowanie i skakanie, możesz stworzyć dynamiczne i wciągające środowisko rozgrywki.
Co więcej, możesz także użyć animacji, aby przekazać graczowi wizualną informację zwrotną. Te informacje zwrotne pomagają uczynić grę bardziej wciągającą i responsywną, zwiększając poczucie kontroli i zaangażowania gracza.