Carriles aleatorios
Parte de la sección Reglas del juego del Journey de Godot de Coddy. Lección 21 de 29.
Algunas elecciones aleatorias necesitan un número entero, como elegir uno de cinco carriles o tirar un dado.
randi_range(a, b) da un número entero aleatorio desde a hasta b, ambos incluidos:
var roll = randi_range(1, 6) # 1, 2, 3, 4, 5 o 6La pantalla tiene 640 píxeles de ancho, así que los cinco carriles miden 128 píxeles cada uno. Multiplica el carril por 128 y después suma 64 para llegar al centro del carril:
var lane = randi_range(0, 4)
spawn(lane * 128 + 64)Eso da x = 64, 192, 320, 448 o 576, y ningún valor intermedio.
Desafío
FácilHaz que los bloques caigan en cinco carriles.
- En
_on_spawn_timer_timeout(), elige un carril convar lane = randi_range(0, 4). - Genera el bloque en
lane * 128 + 64.
Pulsa «Jugar»: los bloques caen en columnas ordenadas. 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(randf_range(40, 600))
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