Menu
CoddyTech

Ограничение по обеим осям

Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 22 из 28.

Герой с видом сверху может уйти за край экрана с любой из четырёх сторон. У Vector2 есть собственный метод clamp, который удерживает оба числа в заданном диапазоне:

position = position.clamp(Vector2(16, 16), Vector2(624, 344))

Первый вектор — верхний левый угол. Второй — нижний правый угол. Каждое число в position остаётся между соответствующими числами двух углов.

Герой — это круг диаметром около 32 пикселей. Поэтому его центр остаётся на расстоянии 16 пикселей от каждого края экрана размером 640 на 360.

challenge icon

Задание

Легко

Не позволяй герою выходить за пределы экрана ни с одной из четырёх сторон.

  1. После move_and_slide() задай position с помощью position.clamp().
  2. Ограничь значение между 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()
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Ввод и перемещение

Потренируйтесь самостоятельно: Песочница Godot