Не выходи за границы экрана
Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 21 из 28.
Беги влево, и герой покинет экран. clamp(value, low, high) удерживает число между двумя границами. Она возвращает low, если value меньше него, high, если value больше него, и value в остальных случаях. clamp(700, 14, 626) возвращает 626.
Ограничь позицию после перемещения и сохрани результат:
move_and_slide()
position.x = clamp(position.x, 14, 626)position — это центр героя, а ширина героя составляет 28 пикселей. Поэтому его центр всегда находится в 14 пикселях от каждого края экрана шириной 640 пикселей, и герой целиком остается в поле зрения.
Задание
ЛегкоДержи героя целиком на экране. После move_and_slide() ограничь position.x диапазоном от 14 до 626.
Попробуйте сами
extends CharacterBody2D
var speed = 220
var acceleration = 900
var friction = 2400
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
var direction = Input.get_axis("move_left", "move_right")
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
if direction > 0:
$Look.scale.x = 1
if direction < 0:
$Look.scale.x = -1
move_and_slide()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ввод и перемещение
1Действия ввода
Нажми, чтобы двигатьсяВлево и вправоОдна осьЧетыре направленияТолько что нажатоНеобработанный ввод4Плавное движение
Плавное ускорениеТрениеПоворачивайся в направлении движенияНе выходи за границы экранаОграничение по обеим осямПотренируйтесь самостоятельно: Песочница Godot