Ống dẫn xuất hiện theo giờ
Thuộc phần Dự án trong hành trình Godot của Coddy. Bài học 24 trên 36.
Tiếp theo là các ống. Một ống là một cảnh, pipe.tscn: gồm nửa trên và nửa dưới, giữa chúng có một khoảng trống. Trong pipe.gd, ống trượt sang trái với tốc độ SPEED pixel mỗi giây. Khi vượt qua mép trái, ống tự xóa, nhờ vậy các ống cũ không chất đống:
position.x -= SPEED * delta
if position.x < -60:
queue_free()Cảnh này có một Timer tên là PipeTimer, kích hoạt sau mỗi 1.6 giây. Trong main.gd, hãy kết nối tín hiệu timeout của nó rồi tạo một ống vượt qua mép phải:
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, 180)
$Pipes.add_child(pipe)Godot vẽ các nút theo thứ tự trong cây. Pipes đứng trước Ground, nên mặt đất che phần dưới của mọi ống.
Thử thách
Trung bìnhĐưa các ống đi qua màn hình.
- Trong
pipe.gd, thêmconst SPEED = 160. Di chuyển ống sang trái sau mỗi khung hình vật lý và xóa ống khiposition.xnhỏ hơn-60. - Trong
main.gd, thêmconst PIPE = preload("res://pipe.tscn")và kết nối$PipeTimer.timeout. - Mỗi khi hết thời gian, tạo một ống tại
(700, 180)trong nútPipes.
Nhấn Chơi: các ống trượt vào từ bên phải. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Node2D
func _ready():
pass
Tất cả bài học trong Dự án
1Dự án: Breakout
Thanh đỡ trong BreakoutGiữ thanh đỡ trong màn hình4Dự án: trò chơi khám phá hầm ngục
Khám phá hầm ngụcNhặt chìa khóa3Dự án: Flappy Flyer
Trọng lực của FlyerVỗ cánh cho FlyerTự luyện tập: Playground Godot