Eroe: raggiungere la sporgenza
Fa parte della sezione Input e movimento del percorso Godot di Coddy. Lezione 28 di 28.
L’obiettivo è la sporgenza alta con la bandiera. L’eroe porta un Banner, un Label nascosto che dice Ce l’hai fatta!
A terra, il valore di position.y dell’eroe è 278. Sul gradino è 218 e sulla sporgenza è 158. Quindi l’eroe si trova sulla sporgenza quando è sul pavimento e position.y è inferiore a 170:
if is_on_floor() and position.y < 170:
$Banner.visible = trueLa parte is_on_floor() è importante. Anche un salto da terra supera 170 per un momento, ma mentre l’eroe è in aria.
Per vincere, salta oltre la fossa, poi sul gradino e infine sulla sporgenza.
Sfida
MedioMostra il Banner dell'eroe quando si trova sulla sporgenza, a terra con position.y inferiore a 170. Poi raggiungi tu stesso la sporgenza.
Provalo tu
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)
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Input e movimento
2CharacterBody2D
CharacterBody2DCammina con la velocitàI muri ti fermanoCammina ovunqueDiagonali corrette5Progetto: Eroe platform
Eroe: correreEroe: saltareEsercitati da solo: Playground Godot