Menu
CoddyTech

Ố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.

challenge icon

Thử thách

Trung bình

Đưa các ống đi qua màn hình.

  1. Trong pipe.gd, thêm const SPEED = 160. Di chuyển ống sang trái sau mỗi khung hình vật lý và xóa ống khi position.x nhỏ hơn -60.
  2. Trong main.gd, thêm const PIPE = preload("res://pipe.tscn") và kết nối $PipeTimer.timeout.
  3. Mỗi khi hết thời gian, tạo một ống tại (700, 180) trong nút Pipes.

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

Tự luyện tập: Playground Godot