Случайные позиции
Часть раздела Правила игры путешествия по Godot на Coddy. Урок 20 из 29.
Блоки, которые всегда падают в одном месте, легко обойти. Случайные числа делают каждый раунд непохожим на предыдущий.
randf_range(a, b) выдаёт случайное число от a до b с десятичной частью. При каждом вызове получается новое число:
spawn(randf_range(40, 600))Ширина блока — 36 пикселей. Поэтому диапазон от 40 до 600 позволяет каждому блоку целиком помещаться на экране шириной 640 пикселей.
Вызывай эту функцию внутри функции таймера каждый раз, когда появляется блок. Число, выбранное один раз и сохранённое в переменной, останется неизменным на протяжении всей игры.
Задание
ЛегкоСделай так, чтобы каждый блок падал в случайное место.
- В
_on_spawn_timer_timeout()замени320наrandf_range(40, 600). - Оставь это внутри функции, чтобы у каждого блока была своя координата x.
Нажми «Играть»: блоки будут падать по всему экрану. Затем нажми «Проверить».
Попробуйте сами
extends Node2D
var block_scene = preload("res://block.tscn")
func _ready():
$SpawnTimer.timeout.connect(_on_spawn_timer_timeout)
func _on_spawn_timer_timeout():
spawn(320)
func spawn(x):
var block = block_scene.instantiate()
block.position = Vector2(x, -30)
add_child(block)
Все уроки раздела Правила игры
4Спавн
Упакованная сценаРазместите новый узелФункция спавнаСпавн по таймеруСлучайные позицииСлучайные полосыПотренируйтесь самостоятельно: Песочница Godot