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 una de cinco vías o el resultado de lanzar 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 cada una de las cinco vías mide 128 píxeles. Multiplica la vía por 128 y después suma 64 para llegar al centro de la vía:
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. Elige un carril con randi_range(0, 4) y genera el bloque en lane * 128 + 64.
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