Limitar al área de la pantalla
Parte de la sección Entrada y movimiento del Journey de Godot de Coddy. Lección 21 de 28.
Corre hacia la izquierda y el héroe sale de la pantalla. clamp(value, low, high) mantiene un número entre dos límites. Devuelve low si value es menor que ese valor, high si value es mayor que ese valor y, de lo contrario, value. clamp(700, 14, 626) da 626.
Limita la posición después de moverte y guarda el resultado:
move_and_slide()
position.x = clamp(position.x, 14, 626)position es el centro del héroe, y el héroe mide 28 píxeles de ancho. Así, su centro permanece a 14 píxeles de cada borde de la pantalla de 640 píxeles, y el héroe entero permanece a la vista.
Desafío
FácilMantén al héroe completo en pantalla. Después de move_and_slide(), limita position.x entre 14 y 626.
Pruébalo tú mismo
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()
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Entrada y movimiento
1Acciones de entrada
Presiona para moverteIzquierda y derechaUn ejeCuatro direccionesRecién presionadoEntrada no gestionada4Movimiento fluido
Acelerar poco a pocoFricciónMirar hacia donde te muevesLimitar al área de la pantallaLimitar ambos ejesPractica por tu cuenta: Playground de Godot