Menu
CoddyTech
flag Pt iconPortuguêsdown icon

Acelere aos Poucos

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

O herói atinge a velocidade máxima em um quadro e para em um quadro. Isso parece rígido.

move_toward(from, to, step) move o número from em direção a to em até step, sem ultrapassá-lo. move_toward(0, 220, 15) resulta em 15. Repetido a cada quadro, resulta em 30, 45 e assim por diante até 220.

Use isso em velocity.x, apontando para a velocidade solicitada pelas teclas:

var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)

acceleration é a velocidade ganha por segundo, então recebe delta. Com 900, o herói chega a 220 em cerca de um quarto de segundo. Sem nenhuma tecla pressionada, o alvo é 0, então o herói desacelera até parar.

challenge icon

Desafio

Médio

Faça o herói acelerar e desacelerar suavemente. Defina velocity.x usando move_toward, em direção a direction * speed, avançando acceleration * delta a cada quadro.

Experimente você mesmo

extends CharacterBody2D

var speed = 220
var acceleration = 900
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
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Entrada e movimento

Pratique por conta própria: Playground de Godot