Menu
CoddyTech

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 6

La 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.

challenge icon

Desafío

Fácil

Haz que los bloques caigan en cinco carriles.

  1. En _on_spawn_timer_timeout(), elige un carril con var lane = randi_range(0, 4).
  2. 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)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Reglas del juego

Practica por tu cuenta: Playground de Godot