godot 2d игра.Кубио

Сегодня планируем разработку второй игры

Вторая игра будет посвящена приключениям блока, который ищет свою принцессу-блок. В проекте будут использованы тайлсеты и анимированные блоки, помогающие главному герою подниматься с платформы на платформу всё выше к цели. Один неверный шаг — и герой падает (потеря высоты без смерти, но можно добавить и летальный исход при падении). При достижении цели выводится сообщение о прохождении. Эта игра уже реализована как проект kinematic_character — я просто воспроизведу её

Создам новый проект в Godot и назову его Cubio

После этого создам корневой узел Node2D, вложу в него TileMapLayer и AnimationPlayer, затем сохраню сцену как game.tscn

Создам новую сцену, добавлю корневой узел CharacterBody2D, вложу в него Sprite2D и CollisionShape2D, затем сохраню сцену как player.tscn

Создам новую сцену для платформ — добавлю корневой узел CharacterBody2D, вложу в него Sprite2D и CollisionShape2D, сохраню как platform.tscn. После этого начну подготавливать блоки и заполнять ими сцену game.tscn

Добавим спрайт в сцену player.tscn в виде иконки Godot, а затем разместим эту сцену на game.tscn (сцене с тайлами)

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

Осталось добавить перемещающиеся платформы. Для этого добавим несколько экземпляров сцены platform.tscn и анимируем их движение

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

Теперь игрок легко достигает вершины. Добавим блок-кирпич из тайлсета, блок-принцессу и скрытый Label с надписью «Спасибо тебе, Кубио!». Для обработки финиша создадим узел Area2D, добавим в него Polygon2D (зальём розовым цветом) и CollisionShape2D. Затем выберем Area2D и подключим сигнал body_shape_entered

Добавим к Area2D следующий код

extends Area2D

@onready var label:Label=$"../Label"


func _on_body_shape_entered(body_rid: RID, body: Node2D, body_shape_index: int, local_shape_index: int) -> void:
label.show()

Вот результат нашего проекта

godot 2d игра.Кубио.Конец

Мы написали игру Кубио.Спасибо за внимание.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх