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.
Thử thách
DễCho mỗi khối rơi ở một vị trí ngẫu nhiên.
- Trong
_on_spawn_timer_timeout(), thay320bằngrandf_range(40, 600). - 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
4Tạo đối tượng
Một cảnh đã đóng góiĐặt nút mớiHàm tạo đối tượngTạo đối tượng theo bộ hẹn giờVị trí ngẫu nhiênLàn đường ngẫu nhiên2Hiển thị điểm trên màn hình
Một nhãn trên màn hìnhChuyển số thành văn bảnĐịnh dạng bằng phần trămCập nhật nhãnĐồng hồ trên màn hìnhTự luyện tập: Playground Godot