Menu
CoddyTech

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 extremos. Devuelve low si value está por debajo, high si value está por encima y value en los demás casos. clamp(700, 14, 626) es 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í que su centro se mantiene a 14 píxeles de cada borde de la pantalla de 640 píxeles, y el héroe entero permanece a la vista.

challenge icon

Desafío

Fácil

Mantén a todo el héroe en la pantalla.

  1. Después de move_and_slide(), establece position.x con clamp().
  2. Limítalo entre 14 y 626.

Pulsa «Jugar» y corre hacia cada lado: el héroe se detiene en el borde, completamente dentro de la pantalla. Después, pulsa «Comprobar».

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()

Todas las lecciones de Entrada y movimiento

Practica por tu cuenta: Playground de Godot