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.
Desafio
FácilFaça cada bloco cair em uma posição aleatória.
- Em
_on_spawn_timer_timeout(), substitua320porrandf_range(40, 600). - 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
4Criação de Instâncias
Uma Cena EmpacotadaPosicione o Novo NóUma Função de CriaçãoCrie Instâncias com um TemporizadorPosições AleatóriasFaixas AleatóriasPratique por conta própria: Playground de Godot