Menu
CoddyTech

Losowe pozycje

Część sekcji Zasady gry ścieżki Godot w Coddy. Lekcja 20 z 29.

Bloki, które zawsze spadają w jedno miejsce, łatwo ominąć. Losowe liczby sprawiają, że każda runda jest inna.

randf_range(a, b) zwraca losową liczbę od a do b, z częścią dziesiętną. Każde wywołanie zwraca nową liczbę:

spawn(randf_range(40, 600))

Blok ma 36 pikseli szerokości. Dlatego zakres od 40 do 600 sprawia, że każdy blok mieści się w całości na ekranie o szerokości 640 pikseli.

Wywołuj ją wewnątrz funkcji timera za każdym razem, gdy pojawia się blok. Liczba wylosowana raz i przechowywana w zmiennej pozostaje taka sama przez całą grę.

challenge icon

Wyzwanie

Łatwy

Spraw, aby każdy blok spadał w losowym miejscu.

  1. W funkcji _on_spawn_timer_timeout() zastąp 320 przez randf_range(40, 600).
  2. Pozostaw to wewnątrz funkcji, aby każdy blok miał własną wartość x.

Naciśnij „Graj”: bloki spadają na całym ekranie. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

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)

Wszystkie lekcje w sekcji Zasady gry

Poćwicz samodzielnie: Edytor online Godot