Menu
CoddyTech

Vị trí ngẫu nhiên

Thuộc phần Luật chơi trong hành trình Godot của Coddy. Bài học 20 trên 29.

Các khối luôn rơi vào cùng một vị trí thì rất dễ né. Số ngẫu nhiên khiến mỗi lượt chơi khác nhau.

randf_range(a, b) cho ra một số ngẫu nhiên từ a đến b, có phần thập phân. Mỗi lần gọi hàm sẽ cho ra một số mới:

spawn(randf_range(40, 600))

Một khối rộng 36 pixel. Vì vậy, khoảng từ 40 đến 600 giúp mọi khối nằm trọn trong màn hình rộng 640 pixel.

Gọi hàm này bên trong hàm của bộ hẹn giờ mỗi khi một khối xuất hiện. Một số được chọn một lần rồi lưu vào biến sẽ giữ nguyên trong suốt trò chơi.

challenge icon

Thử thách

Dễ

Cho mỗi khối rơi ở một vị trí ngẫu nhiên.

  1. Trong _on_spawn_timer_timeout(), thay 320 bằng randf_range(40, 600).
  2. Giữ dòng này bên trong hàm để mỗi khối có tọa độ x riêng.

Nhấn Chơi: các khối rơi khắp màn hình. Sau đó nhấn Kiểm tra.

Tự làm thử

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)

Tất cả bài học trong Luật chơi

Tự luyện tập: Playground Godot