Menu
CoddyTech

Héros : Atteindre le rebord

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

L’objectif est le rebord élevé avec le drapeau. Le héros porte une Banner, un Label masqué qui indique Tu as réussi !

Au sol, le position.y du héros vaut 278. Sur la marche, il vaut 218, et sur le rebord, 158. Le héros est donc sur le rebord lorsqu’il est au sol et que position.y est inférieur à 170 :

if is_on_floor() and position.y < 170:
	$Banner.visible = true

La partie is_on_floor() est importante. Un saut depuis le sol passe aussi par 170 pendant un instant, mais dans les airs.

Pour gagner, saute par-dessus le fossé, puis sur la marche, puis sur le rebord.

challenge icon

Défi

Moyen

Affiche la Banner du héros lorsque celui-ci se tient sur le rebord, au sol, avec position.y inférieur à 170. Puis atteins toi-même le rebord.

Essayez vous-même

extends CharacterBody2D

var speed = 220
var acceleration = 1200
var friction = 2400
var gravity = 1000
var jump_velocity = -500
var start_position = Vector2()

func _ready():
	start_position = position

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()
	if position.y > 400:
		position = start_position
		velocity = Vector2(0, 0)
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

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

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