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 = trueLa 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.
Défi
MoyenAffiche 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)
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
2CharacterBody2D
CharacterBody2DSe déplacer avec une vélocitéLes murs vous arrêtentSe déplacer partoutDiagonales équilibrées5Projet : Héros de jeu de plateforme
Héros : CourirHéros : SauterEntraînez-vous par vous-même : Playground Godot