Posiciones aleatorias
Parte de la sección Reglas del juego del Journey de Godot de Coddy. Lección 20 de 29.
Es fácil esquivar los bloques que siempre caen en el mismo lugar. Los números aleatorios hacen que cada ronda sea diferente.
randf_range(a, b) da un número aleatorio de a a b, con decimales. Cada llamada da uno nuevo:
spawn(randf_range(40, 600))Un bloque tiene 36 píxeles de ancho. Así que el intervalo de 40 a 600 mantiene cada bloque completamente dentro de la pantalla de 640 píxeles.
Llámala dentro de la función del temporizador, cada vez que aparece un bloque. Un número elegido una vez y guardado en una variable se mantiene igual durante toda la partida.
Desafío
FácilHaz que cada bloque caiga en una posición x aleatoria entre 40 y 600, elegida cuando aparece el bloque.
Pruébalo tú mismo
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)
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Reglas del juego
1Temporizadores
El nodo TimerIniciar un temporizadorTiempo de esperaUna sola vezEsperar a un temporizador4Generación
Una escena empaquetadaColoca el nuevo nodoUna función de generaciónGenerar con un temporizadorPosiciones aleatoriasCarriles aleatoriosPractica por tu cuenta: Playground de Godot