Создайте иммерсивную игровую среду для своих игр Godot с увлекательной анимацией.

В разработке игр анимация играет решающую роль в создании увлекательного и захватывающего опыта для игроков. Добавление 2D-анимации в вашу игру Godot может оживить ваших персонажей и окружающую среду, сделав их более визуально привлекательными и интерактивными.

К счастью, Godot предоставляет мощные инструменты и функции для простого создания и управления 2D-анимацией.

Настройка игры Годо

Для начала создайте базовую 2D-сцену игры в игровой движок Godot. Создайте новую сцену и добавьте кинематическоетело2D node в качестве персонажа игрока. Внутри кинематическоетело2D, добавить CollisionShape2D с прямоугольной формой, которая представляет границы столкновения игрока.

Код, используемый в этой статье, доступен в этом Репозиторий GitHub и вы можете использовать его бесплатно по лицензии MIT.

Кроме того, добавьте Анимированный спрайт node для управления анимацией игрока. Кроме того, убедитесь, что вы сопоставляете следующие действия ввода в вашем Входная карта:

instagram viewer

Затем напишите код GDScript для управления движением игрока. Прикрепите следующий скрипт к кинематическоетело2D узел:

 расширяет KinematicBody2Dconst СКОРОСТЬ = 200func _физический_процесс (дельта): var Velocity = Vector2.ZERO, если Input.is_action_pressed("move_left"): speed.x -= СКОРОСТЬ, если Input.is_action_pressed("move_right"): Velocity.x += СКОРОСТЬ, если Input.is_action_pressed("move_up"): Velocity.y -= SPEED, если Input.is_action_pressed("move_down"): Velocity.y += SPEED Velocity = move_and_slide (скорость)

Этот скрипт устанавливает постоянную скорость для игрока и позволяет ему двигаться влево, вправо, вверх и вниз с помощью клавиш со стрелками или WASD.

Добавление SpriteSheet в AnimatedSprite

Теперь настройте Анимированный спрайт использовать лист спрайтов для анимации. Выберите Анимированный спрайт узел и перейдите к Рамки раздел на вкладке свойств узла. Здесь нажмите на Новые кадры спрайтов кнопка.

Переключиться на SpriteFrame вкладка, расположенная в нижней части редактора Godot. в SpriteFrame вкладку, нажмите на Новая анимация кнопка. Создание анимации, например ходить и праздный добавляя соответствующие кадры к каждой анимации.

Кроме того, у вас есть возможность создавать другие анимации, такие как стрельба, прыжки и лазание. для платформера. После этого нажмите на Добавляем кадры из SpriteSheet Кнопка для автоматического извлечения отдельных кадров из листа спрайтов.

Управление анимацией с помощью GDScript

Теперь, когда вы настроили анимацию, вы можете программно управлять ею с помощью GDScript.

Воспроизведение и остановка анимации

Управление воспроизведением анимации необходимо для обеспечения динамичного и интерактивного опыта в вашей игре. Анимированный спрайт node в Godot предлагает методы воспроизведения и остановки анимации в соответствии с логикой вашей игры.

Продлить кинематическоетело2D node и обрабатывать управление анимацией в _physics_process функция. Вы можете использовать play_animation и стоп_анимация входы для запуска соответствующих действий анимации.

 extends KinematicBody2Dfunc _physics_process (delta): # Воспроизвести анимацию, если Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Остановить анимацию и вернуться к первому кадру, если Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0

Сопоставляя соответствующие действия ввода, вы можете предоставить игрокам контроль над воспроизведением анимации в вашей игре.

Например, вы можете привязать play_animation действие на нажатие кнопки или определенное событие в вашей игре, что позволяет игроку запускать последовательность анимации в нужный момент. Кроме того, вы можете найти музыку без авторских прав играть во время анимации.

Точно так же вы можете вызвать стоп_анимация действия, чтобы полностью остановить анимацию.

Включив эти механизмы управления анимацией, вы можете добавить глубины и интерактивности анимации вашей игры, создавая более привлекательные и захватывающие впечатления для ваших игроков.

Вращение анимации

Вращение анимации может добавить визуальный интерес и разнообразие в вашу игру. Вы можете программно повернуть Анимированный спрайт узел, чтобы изменить ориентацию анимации. Вы можете применить поворот в градусах, используя повернуть() метод.

 extends KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Повернуть анимацию на 45 градусов по часовой стрелке $AnimatedSprite.rotate (deg2rad (45))

При нажатии кнопок, связанных с rotate_animation (это действие можно определить на входной карте), повернуть() метод вызывается на Анимированный спрайт узел. Он поворачивает узел на 45 градусов по часовой стрелке, используя град2рад() перевести градусы в радианы.

Имейте в виду, что он будет применять вращение ко всему Анимированный спрайт node, включая все кадры анимации. Поэтому, если вы хотите вращать только определенные кадры, вам может понадобиться разбить их на отдельные Анимированный спрайт узлы или использовать другие методы, такие как переворачивание отдельных кадров.

Переворачивание анимации

Отражение анимации по горизонтали или вертикали может быть полезно для отражения изменений в направлении персонажа. В «Годо» Анимированный спрайт node предоставляет свойства для управления переключением.

Чтобы отразить анимацию по горизонтали, установите flip_h собственность Анимированный спрайт к истинный. Это отразит анимацию по горизонтальной оси. Точно так же установка flip_v собственность на истинный будет отражать анимацию по вертикальной оси.

 расширяет KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # или $AnimatedSprite.flip_v = true для вертикального отражения

Если игрок нажимает flip_animation действие ввода, затем установите flip_h собственность Анимированный спрайт к истинный. Это перевернет анимацию по горизонтали.

Использование сигналов в AnimatedSprite

Помимо программного управления анимацией, Godot предоставляет мощную систему событий, называемую сигналами. Сигналы позволяют вам реагировать на определенные события или изменения, которые происходят во время выполнения вашей игры.

В случае Анимированный спрайт, есть два важных сигнала, которые вы можете использовать: анимация_закончена() и кадр_изменен().

1. анимация_finished() Сигнал

анимация_закончена() сигнал испускается, когда анимация достигает последнего кадра, либо во время одиночного воспроизведения, либо при циклическом воспроизведении. Этот сигнал полезен, когда вы хотите выполнить действия или инициировать события после завершения анимации.

 расширяет KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Выполнение действий или запуск событий print("Animation закончено!") # Дополнительный код здесь...

Подключить анимация_закончена() сигнал Анимированный спрайт к _on_animation_finished() метод в том же скрипте с использованием соединять() функция.

Когда анимация завершится, вы можете выполнить пользовательскую логику или запустить другие функции, используя _on_animation_finished() метод.

2. Сигнал frame_changed()

кадр_изменен() сигнал испускается всякий раз, когда изменяется текущий кадр анимации. Это может произойти во время воспроизведения анимации или при программном изменении кадра. Вы можете использовать этот сигнал для обнаружения смены кадров и соответствующей реакции.

 расширяет KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Выполнение действий на основе текущего кадра var currentFrame = $AnimatedSprite.frame print("Текущий кадр: ", currentFrame) # Дополнительный код здесь...

Подключить кадр_изменен() сигнал Анимированный спрайт к _on_frame_changed() метод в том же скрипте. Когда кадр изменяется, вы можете получить доступ к текущему кадру, используя _on_frame_changed() метод и выполнять действия или логику на основе значения кадра.

Используя сигналы, вы можете реагировать на события анимации, такие как завершение или изменение кадра, и включать динамическое поведение или запускать определенные действия в своей игре.

Сделайте игры Godot более увлекательными, используя анимацию

Добавление 2D-анимации в ваши игры Godot может значительно улучшить общее впечатление от игры. Анимация оживляет персонажей, делая их движения и действия более привлекательными. Включив анимацию для различных действий, таких как ходьба, бег, атака и прыжки, вы можете создать динамичную и захватывающую игровую среду.

Кроме того, вы также можете использовать анимацию для обеспечения визуальной обратной связи с игроком. Эта обратная связь помогает сделать игру более увлекательной и отзывчивой, повышая чувство контроля и вовлеченности игрока.