Menu
CoddyTech

Posições Aleatórias

Parte da seção Regras do jogo do Journey de Godot da Coddy. Lição 20 de 29.

Blocos que sempre caem no mesmo lugar são fáceis de desviar. Números aleatórios fazem cada rodada ser diferente.

randf_range(a, b) fornece um número aleatório de a a b, com casas decimais. Cada chamada fornece um novo número:

spawn(randf_range(40, 600))

Um bloco tem 36 pixels de largura. Portanto, de 40 a 600 mantém cada bloco totalmente dentro da tela de 640 pixels.

Chame essa função dentro da função do temporizador, cada vez que um bloco surgir. Um número escolhido uma vez e armazenado em uma variável permanece igual durante todo o jogo.

challenge icon

Desafio

Fácil

Faça cada bloco cair em uma posição aleatória.

  1. Em _on_spawn_timer_timeout(), substitua 320 por randf_range(40, 600).
  2. Mantenha isso dentro da função, para que cada bloco tenha seu próprio x.

Pressione “Jogar”: os blocos caem por toda a tela. Depois, pressione “Verificar”.

Experimente você mesmo

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 as lições de Regras do jogo

Pratique por conta própria: Playground de Godot