Posisi Acak
Termasuk bagian Aturan Game dalam perjalanan Godot di Coddy. Pelajaran 20 dari 29.
Blok yang selalu jatuh di satu tempat mudah dihindari. Angka acak membuat setiap ronde berbeda.
randf_range(a, b) memberikan angka acak dari a hingga b, termasuk desimal. Setiap pemanggilan memberikan angka baru:
spawn(randf_range(40, 600))Lebar blok adalah 36 piksel. Jadi, rentang 40 hingga 600 memastikan setiap blok sepenuhnya berada di layar selebar 640 piksel.
Panggil fungsi ini di dalam fungsi timer, setiap kali sebuah blok muncul. Angka yang dipilih sekali lalu disimpan dalam variabel akan tetap sama sepanjang permainan.
Tantangan
MudahBuat setiap balok jatuh di tempat yang acak.
- Di dalam
_on_spawn_timer_timeout(), ganti320denganrandf_range(40, 600). - Biarkan tetap di dalam fungsi agar setiap balok mendapatkan nilai x-nya sendiri.
Tekan tombol “Main”: balok-balok jatuh di seluruh layar. Lalu tekan tombol “Periksa”.
Coba sendiri
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)
Semua pelajaran di Aturan Game
Latihan sendiri: Playground Godot