Сегодня рассмотрим пример туториала на годот Hexagonal Game
Главная сцена этого примера состоит из узла Node2D, внутри которого находятся TileMapLayer и сцена тролля. Рассмотрим подробнее сцену тролля.
Сцена тролля построена на основе CharacterBody2D. Внутрь него вложены два спрайта (Sprite2D), узел CollisionShape2D и камера (Camera2D).
Ниже представлен код, который прикреплён к CharacterBody2D.
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(&"move_left", &"move_right")
motion.y = Input.get_axis(&"move_up", &"move_down")
# Make diagonal movement fit for hexagonal tiles.
motion.y *= TAN30DEG
velocity += motion.normalized() * MOTION_SPEED
# Apply friction.
velocity *= FRICTION_FACTOR
move_and_slide()
Этот код отвечает за перемещение тролля вверх, вниз, влево и вправо, а также за обработку его столкновений с возможными препятствиями.
Конец.
Мы рассмотрели структуру и код сцены тролля, а также сцены с гексагональной «плиткой» в проекте Hexagonal Game. Теперь осталось лишь закрепить эти знания — этим мы и займёмся в следующем туториале. Спасибо за внимание.
