Сегодня я восстановлю структуру программы годот Hexagonal Game

Сегодня мы восстановим пример туториала Godot — Hexagonal Game.

Для начала откроем новый экземпляр Godot. Нажмём «Создать», введём имя Hexagonal Game Experiment и нажмём «Создать».

Создадим узел CharacterBody2D. Внутрь него вложим два спрайта (Sprite2D), добавим узел CollisionShape2D и камеру (Camera2D).

Сохраним сцену как troll.tscn. Добавим в неё спрайт троля — для этого импортируем ресурсы из туториала. Переместим файл из res в узел Sprite2D.

Затем добавим скрипт к узлу CharacterBody2D и назовём его troll.gd.

Добавим в скрипт troll.gd следующий код.

extends CharacterBody2D

const MOTION_SPEED = 30
const FRICTION_FACTOR = 0.89
const TAN30DEG = tan(deg_to_rad(30))

func _physics_process(_delta: float) -> void:
var motion := Vector2()
motion.x = Input.get_axis("ui_left", "ui_right")
motion.y = Input.get_axis("ui_up", "ui_down")
motion.y *= TAN30DEG
velocity += motion.normalized() * MOTION_SPEED
velocity *= FRICTION_FACTOR
move_and_slide()

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

Создадим новую сцену. Добавим в неё узлы Node2D и TileMapLayer, а затем встроим сцену troll.tscn.

Сохраним сцену как map.tscn. Добавим в ресурсы несколько шестиугольных спрайтов.

Выделим TileMapLayer и в инспекторе установим для него новый TileSet. Перейдём в настройки TileSet, изменим Tile Shape на Hexagonal. Параметры Tile Size установим: x = 128, y = 128.

Выберем набор тайлов, нажмём + и добавим атлас. Выберем карту тайлов и кликнем по нужному тайлу — увидим, что спрайт не соответствует ячейке. Чтобы исправить это, изменим параметр The Offset Axis с Horizontal Offset на Vertical Offset.

Теперь попробуем создать тайлы и запустить сцену. Вот что у нас получится.

Всё работает: тайлы перемещаются относительно тролля (камеры). Однако сами тайлы слишком маленькие.

Чтобы исправить это, нужно подстроить их размер. Изменим параметр Tile Size. Опытным путём подберём значения: x = 110, y = 94.

Запустим программу и посмотрим, что получилось.

Конец.

Мы восстановили структуру и код примера Hexagonal Game. Позже приступим к новому проекту. Спасибо за внимание.

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

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

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