Herói: Voltar ao início
Parte da seção Entrada e movimento do Journey de Godot da Coddy. Lição 27 de 28.
Se o herói cair no buraco, ele deve voltar ao início.
Armazene o início em uma variável em _ready(), que é executada antes de o herói se mover:
var start_position = Vector2()
func _ready():
start_position = positionApós move_and_slide(), verifique se o herói caiu abaixo da tela de 360 pixels. Coloque-o de volta no início e redefina sua velocidade para que ele não chegue ainda caindo:
if position.y > 400:
position = start_position
velocity = Vector2(0, 0)Desafio
MédioFaça o herói voltar ao início quando cair no poço.
- Adicione
var start_position = Vector2()e, em um novo_ready(), defina-o comoposition. - Depois de
move_and_slide(), quandoposition.y > 400, definapositioncomostart_positionevelocitycomoVector2(0, 0).
Pressione “Jogar” e caia no poço: o herói volta ao início. Depois, pressione “Verificar”.
Experimente você mesmo
extends CharacterBody2D
var speed = 220
var acceleration = 1200
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
2CharacterBody2D
CharacterBody2DAnde com velocidadeParedes impedem seu avançoAnde por toda parteDiagonais equilibradas5Projeto: Herói de plataforma
Herói: CorrerHerói: PularPratique por conta própria: Playground de Godot