Menu
CoddyTech

Случайные позиции

Часть раздела Правила игры путешествия по Godot на Coddy. Урок 20 из 29.

Блоки, которые всегда падают в одном месте, легко обойти. Случайные числа делают каждый раунд непохожим на предыдущий.

randf_range(a, b) выдаёт случайное число от a до b с десятичной частью. При каждом вызове получается новое число:

spawn(randf_range(40, 600))

Ширина блока — 36 пикселей. Поэтому диапазон от 40 до 600 позволяет каждому блоку целиком помещаться на экране шириной 640 пикселей.

Вызывай эту функцию внутри функции таймера каждый раз, когда появляется блок. Число, выбранное один раз и сохранённое в переменной, останется неизменным на протяжении всей игры.

challenge icon

Задание

Легко

Сделай так, чтобы каждый блок падал в случайное место.

  1. В _on_spawn_timer_timeout() замени 320 на randf_range(40, 600).
  2. Оставь это внутри функции, чтобы у каждого блока была своя координата 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)

Все уроки раздела Правила игры

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