Ограничение по обеим осям
Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 22 из 28.
Герой с видом сверху может уйти за край экрана с любой из четырёх сторон. У Vector2 есть собственный метод clamp, который удерживает оба числа в заданном диапазоне:
position = position.clamp(Vector2(16, 16), Vector2(624, 344))Первый вектор — верхний левый угол. Второй — нижний правый угол. Каждое число в position остаётся между соответствующими числами двух углов.
Герой — это круг диаметром около 32 пикселей. Поэтому его центр остаётся на расстоянии 16 пикселей от каждого края экрана размером 640 на 360.
Задание
ЛегкоНе позволяй герою выходить за пределы экрана ни с одной из четырёх сторон.
- После
move_and_slide()задайpositionс помощьюposition.clamp(). - Ограничь значение между
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