Створення кастумних Node-ів (Сцен) та їх використання - 2 - Платформи
Підготовка основної сцени та проєкту
Додайте Node-и Objects>MovingPlatforms для наших кастумних Node-ів, створіть папку Scenes.
Що у вас повинно вийти
- Node2D
- Map
- Tiles
- {...}
- Paralax
- {...}
- Objects
- MovingPlatforms
- Player
- {...}
Створення кастумного Node-у (scene-ни) - MovingPlatform
Створення та настройка MovingPlatform.
Створіть базову структуру нашого Node:
Що у вас повинно вийти
- Path2D
- PathFollow2D
- RemoteTransform2D
- AnimatableBody2D
- TileMapLayer
- CollisionShape2D
- AnimationPlayer
Збережіть наш Node з назвою MovingPlatform:
Настройте TileMapLayer та CollisionShape2D:
Настройте RemoteTransform2D:
Настройте Path2D та PathFollow2D:
Настройте AnimationPlayer та додайте анімацію:
Додайте нову анімацію з назвою Main:
Додайте перший key-frame:
Додайте другий(останній) key-frame:
Якщо все зроблено правильно - анімація буде працювати, приклад:
Змініть Animation Looping:
Видаліть Curve з Path2D, вона нам більше не потрібна:
Прив'язка коду до MovingPlatform
Код для MovingPlatform та його прив'язка.
Додайте даний код до кореня MovingPlatform - Path2D:
using Godot;
public partial class MovingPlatform : Path2D
{
// Експортована змінна, яка дозволяє масштабувати швидкість анімації (використовується, якщо анімація керує рухом).
[Export]
public float SpeedScale = 1.0f;
// Приватна змінна для збереження посилання на нод AnimationPlayer.
private AnimationPlayer AnimationPlayer;
// Метод, який викликається Godot, коли MovingPlatform готовий до роботи.
public override void _Ready()
{
// Отримуємо посилання на нод AnimationPlayer.
AnimationPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
// Запускаємо анімацію "Main" в AnimationPlayer.
AnimationPlayer.Play("Main");
// Задаємо SpeedScale для AnimationPlayer, щоб контролювати швидкість анімації.
AnimationPlayer.SpeedScale = SpeedScale;
}
}Використання MovingPlatform у проєкті
Додання MovingPlatform до проєкту.
Додайте MovingPlatform до проєкту:
Використання MovingPlatform у проєкті:
build info
- compiler
- 2.0.5.1 · 4054EF9BF6C4510A
- built
- 2026-11-08 14:31:25 UTC
WebUniverse