Ограничение по обеим осям
Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 22 из 28.
Герой с видом сверху может покинуть экран с любой из четырёх сторон. У Vector2 есть собственный метод clamp, который удерживает оба числа в заданном диапазоне:
position = position.clamp(Vector2(16, 16), Vector2(624, 344))Первый вектор обозначает верхний левый угол. Второй — нижний правый угол. Каждое число в position остаётся между соответствующими числами этих двух углов.
Герой — это круг диаметром около 32 пикселей. Поэтому его центр остаётся на расстоянии 16 пикселей от каждого края экрана размером 640 на 360.
Задание
ЛегкоУдерживай героя на экране со всех четырёх сторон. После move_and_slide() ограничь position значениями от Vector2(16, 16) до Vector2(624, 344).
Попробуйте сами
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * speed
move_and_slide()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ввод и перемещение
1Действия ввода
Нажми, чтобы двигатьсяВлево и вправоОдна осьЧетыре направленияТолько что нажатоНеобработанный ввод4Плавное движение
Плавное ускорениеТрениеПоворачивайся в направлении движенияНе выходи за границы экранаОграничение по обеим осямПотренируйтесь самостоятельно: Песочница Godot