Menu
CoddyTech

Héros : Retour au départ

Fait partie de la section Entrées et déplacements du Journey Godot de Coddy. Leçon 27 sur 28.

Si le héros tombe dans le trou, il doit revenir au point de départ.

Enregistre le point de départ dans une variable dans _ready(), qui s’exécute avant que le héros ne bouge :

var start_position = Vector2()

func _ready():
	start_position = position

Après move_and_slide(), vérifie si le héros est tombé sous l’écran de 360 pixels. Replace-le au point de départ et réinitialise sa vitesse pour qu’il ne revienne pas en continuant de tomber :

if position.y > 400:
	position = start_position
	velocity = Vector2(0, 0)
challenge icon

Défi

Moyen

Renvoie le héros au point de départ lorsqu’il tombe dans le trou.

  1. Ajoute var start_position = Vector2(), puis, dans une nouvelle fonction _ready(), donne-lui la valeur de position.
  2. Après move_and_slide(), lorsque position.y > 400, donne à position la valeur de start_position et à velocity la valeur de Vector2(0, 0).

Clique sur « Jouer » et tombe dans le trou : le héros revient au point de départ. Puis clique sur « Vérifier ».

Essayez vous-même

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

Toutes les leçons de Entrées et déplacements

Entraînez-vous par vous-même : Playground Godot