Posiciones aleatorias
Parte de la sección Reglas del juego del Journey de Godot de Coddy. Lección 20 de 29.
Los bloques que siempre caen en el mismo lugar son fáciles de esquivar. 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 todos los bloques completamente dentro de la pantalla de 640 píxeles.
Llámala dentro de la función del temporizador, cada vez que aparezca un bloque. Un número elegido una vez y guardado en una variable permanece igual durante toda la partida.
Desafío
FácilHaz que cada bloque caiga en un lugar aleatorio.
- En
_on_spawn_timer_timeout(), reemplaza320porrandf_range(40, 600). - Déjalo dentro de la función para que cada bloque tenga su propia coordenada x.
Pulsa «Jugar»: los bloques caen por toda la pantalla. Después, pulsa «Comprobar».
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)
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