Menu
CoddyTech
flag Ru iconРусскийdown icon

Герой: добраться до уступа

Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 28 из 28.

Цель — высокий уступ с флагом. Герой несёт Banner — скрытый Label с надписью Ты справился!

На земле значение position.y героя равно 278. На ступеньке оно равно 218, а на уступе — 158. Значит, герой находится на уступе, когда он стоит на полу, а значение position.y меньше 170:

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

Здесь важна часть is_on_floor(). При прыжке с земли значение тоже на мгновение становится меньше 170, но в воздухе.

Чтобы победить, перепрыгни яму, затем запрыгни на ступеньку, а потом на уступ.

challenge icon

Задание

Средне

Покажи Banner героя, когда он стоит на уступе, на полу, при значении position.y меньше 170. Затем сам доберись до уступа.

Попробуйте сами

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 iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Ввод и перемещение

Потренируйтесь самостоятельно: Песочница Godot