Разработете завладяваща игрова среда за вашите Godot игри със завладяващи анимации.
При разработването на игри анимациите играят решаваща роля за създаването на завладяващо и завладяващо изживяване за играчите. Добавянето на 2D анимации към вашата игра Godot може да вдъхне живот на вашите герои и среда, правейки ги по-привлекателни и интерактивни.
За щастие Godot предоставя мощни инструменти и функции за лесно създаване и управление на 2D анимации.
Настройване на играта Godot
За да започнете, настройте основна сцена на 2D игра игровият двигател Godot. Създайте нова сцена и добавете a KinematicBody2D възел като персонаж на играча. Вътре в KinematicBody2D, добави CollisionShape2D с правоъгълна форма, която представлява границите на сблъсъка на играча.
Кодът, използван в тази статия, е достъпен в това GitHub хранилище и е безплатен за използване под лиценза на MIT.
Освен това добавете Анимиран спрайт възел за обработка на анимациите на играча. Освен това се уверете, че картографирате следните действия за въвеждане във вашия Входна карта:
След това напишете GDScript кода, за да контролирате движението на играча. Прикачете следния скрипт към KinematicBody2D възел:
разширява KinematicBody2Dconst SPEED = 200func _physics_process (делта): 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 (скорост)
Този скрипт задава постоянна скорост за играча и му позволява да се движи наляво, надясно, нагоре и надолу с помощта на клавишите със стрелки или WASD.
Добавяне на SpriteSheet в AnimatedSprite
Сега конфигурирайте Анимиран спрайт да използвате спрайт лист за анимации. Изберете Анимиран спрайт възел и навигирайте до Рамки раздел в раздела със свойства на възела. Тук кликнете върху Нови SpriteFrames бутон.
Преминете към SpriteFrames раздел, разположен в долната част на редактора Godot. В SpriteFrames раздел, щракнете върху Нова анимация бутон. Създавайте анимации като разходка и празен чрез добавяне на подходящи кадри към всяка анимация.
Освен това имате възможност да създавате други анимации, като стрелба, скачане и катерене за платформинг игра. След това щракнете върху Добавете рамки от SpriteSheet бутон за автоматично извличане на отделни кадри от листа със спрайтове.
Контролиране на анимации с помощта на GDScript
Сега, след като сте настроили вашите анимации, можете да ги управлявате програмно с помощта на GDScript.
Пускане и спиране на анимацията
Контролът на възпроизвеждането на анимации е от съществено значение за осигуряване на динамични и интерактивни изживявания във вашата игра. The Анимиран спрайт възел в Godot предлага методи за възпроизвеждане и спиране на анимации според вашата логика на играта.
Разширете KinematicBody2D възел и управлява контрола на анимацията в рамките на _физичен_процес функция. Можете да използвате play_animation и стоп_анимация входове за задействане на съответните анимационни действия.
разширява KinematicBody2Dfunc _physics_process (делта): # Възпроизвеждане на анимацията, ако Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Спрете анимацията и нулирайте до първия кадър, ако Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0
Чрез картографиране на подходящите входни действия можете да предоставите на играчите контрол върху възпроизвеждането на анимация във вашата игра.
Например, можете да обвържете play_animation действие към натискане на бутон или конкретно събитие във вашата игра, което позволява на играча да задейства анимационна последователност в желан момент. Освен това можете намерете музика без авторски права за възпроизвеждане, докато анимацията работи.
По същия начин можете да задействате стоп_анимация действия за пълно спиране на анимацията.
Чрез включването на тези механизми за контрол на анимацията можете да добавите дълбочина и интерактивност към анимациите на вашата игра, създавайки по-ангажиращи и потапящи изживявания за вашите играчи.
Завъртане на анимацията
Завъртането на анимацията може да добави визуален интерес и разнообразие към вашата игра. Можете програмно да завъртите Анимиран спрайт възел за промяна на ориентацията на анимацията. Можете да приложите въртенето в градуси, като използвате завъртане () метод.
разширява KinematicBody2Dfunc _physics_process (делта): if Input.is_action_just_pressed("rotate_animation"): # Завъртане на анимацията с 45 градуса по часовниковата стрелка $AnimatedSprite.rotate (deg2rad (45))
Когато натиснете бутоните, свързани с завъртане_анимация (можете да дефинирате това действие във вашата карта за въвеждане), the завъртане () методът се извиква на Анимиран спрайт възел. Той завърта възела на 45 градуса по посока на часовниковата стрелка с помощта на deg2rad() за преобразуване на градусите в радиани.
Имайте предвид, че ще приложи ротация към цялото Анимиран спрайт възел, включително всички кадри на анимацията. Следователно, ако искате да завъртите само определени кадри, може да се наложи да ги разделите на отделни Анимиран спрайт възли или използвайте други техники като обръщане на отделни рамки.
Обръщане на анимацията
Обръщането на анимацията хоризонтално или вертикално може да бъде полезно за отразяване на промените в посоката на героите. В Годо, Анимиран спрайт възел предоставя свойства за контрол на обръщането.
За да обърнете анимацията хоризонтално, задайте flip_h собственост на Анимиран спрайт да се вярно. Това ще отразява анимацията по хоризонталната ос. По същия начин настройката на flip_v собственост към вярно ще отразява анимацията по вертикалната ос.
разширява KinematicBody2Dfunc _physics_process (делта): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # или $AnimatedSprite.flip_v = true за вертикално обръщане
Ако играчът натисне обръщане_анимация действие за въвеждане, след което задайте flip_h собственост на Анимиран спрайт да се вярно. Това ще обърне анимацията хоризонтално.
Използване на сигнали в AnimatedSprite
В допълнение към програмното управление на анимациите, Godot предоставя мощна система за събития, наречена сигнали. Сигналите ви позволяват да реагирате на конкретни събития или промени, които се случват по време на изпълнението на вашата игра.
В случай че Анимиран спрайт, има два важни сигнала, които можете да използвате: animation_finished() и frame_changed().
1. animation_finished() Сигнал
The animation_finished() сигналът се излъчва, когато анимацията достигне последния кадър, или по време на единично възпроизвеждане, или когато се повтаря. Този сигнал е полезен, когато искате да извършите действия или да задействате събития, когато анимацията завърши.
разширява KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished") func _on_animation_finished(): # Извършване на действия или задействане на събития print("Animation" готов!") # Допълнителен код тук...
Свържете animation_finished() сигнал на Анимиран спрайт към _on_animation_finished() метод в същия скрипт, използвайки свързвам () функция.
Когато анимацията приключи, можете да изпълните персонализирана логика или да задействате други функции, като използвате _on_animation_finished() метод.
2. frame_changed() Сигнал
The frame_changed() сигнал се излъчва всеки път, когато текущият кадър на анимацията се промени. Това може да се случи, когато анимацията се възпроизвежда или когато програмно промените рамката. Можете да използвате този сигнал, за да откриете промени в рамката и да реагирате по съответния начин.
разширява KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Извършване на действия въз основа на текущия кадър var currentFrame = $AnimatedSprite.frame print("Текущ кадър: ", currentFrame) # Допълнителен код тук...
Свържете frame_changed() сигнал на Анимиран спрайт към _on_frame_changed() метод в същия скрипт. Когато рамката се промени, можете да получите достъп до текущата рамка, като използвате _on_frame_changed() метод и изпълнява действия или логика въз основа на стойността на рамката.
Чрез използване на сигнали можете да реагирате на анимационни събития като завършване или промени в рамката и да включите динамично поведение или да задействате конкретни действия във вашата игра.
Направете Godot Games по-ангажиращи, като използвате анимации
Добавянето на 2D анимации към вашите Godot игри може значително да подобри цялостното изживяване на играча. Анимациите вдъхват живот на героите, правейки техните движения и действия по-привлекателни визуално. Чрез включване на анимации за различни действия, като ходене, бягане, атака и скачане, можете да създадете динамична и завладяваща среда за игра.
Освен това можете също да използвате анимации, за да предоставите визуална обратна връзка на играча. Тази обратна връзка помага да се направи играта по-ангажираща и отзивчива, като подобрява чувството на играча за контрол и участие.