Menu
CoddyTech

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.

challenge icon

Desafío

Fácil

Haz que cada bloque caiga en un lugar aleatorio.

  1. En _on_spawn_timer_timeout(), reemplaza 320 por randf_range(40, 600).
  2. 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

Practica por tu cuenta: Playground de Godot