Menu
CoddyTech

Limite à Tela

Parte da seção Entrada e movimento do Journey de Godot da Coddy. Lição 21 de 28.

Corra para a esquerda e o herói sairá da tela. clamp(value, low, high) mantém um número entre dois limites. Ela retorna low se value for menor que esse limite, high se value for maior que esse limite e, caso contrário, value. clamp(700, 14, 626) é 626.

Limite a posição depois de se mover e armazene o resultado:

move_and_slide()
position.x = clamp(position.x, 14, 626)

position é o centro do herói, e o herói tem 28 pixels de largura. Assim, seu centro permanece a 14 pixels de cada borda da tela de 640 pixels, e o herói inteiro permanece visível.

challenge icon

Desafio

Fácil

Mantenha o herói inteiro na tela.

  1. Depois de move_and_slide(), defina position.x com clamp().
  2. Limite-o entre 14 e 626.

Pressione “Jogar” e corra para cada lado: o herói para na borda, totalmente na tela. Depois, pressione “Verificar”.

Experimente você mesmo

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 as lições de Entrada e movimento

Pratique por conta própria: Playground de Godot