Các tảng đá trôi dạt
Thuộc phần Dự án trong hành trình Godot của Coddy. Bài học 16 trên 36.
Các tảng đá cần di chuyển. rock.gd làm mỗi tảng đá trôi theo velocity, quay chậm và vòng lại như con tàu.
Tảng đá khá lớn, nên nó vòng lại ở -30 và 670 thay vì 0 và 640. Nhờ vậy, nó rời khỏi màn hình hoàn toàn rồi mới xuất hiện lại. Bước nhảy là 700, bằng chiều rộng của dải rộng hơn đó:
if position.x > 670:
position.x -= 700Cạnh trái, cạnh trên và cạnh dưới cũng hoạt động tương tự, với -30, 390 và bước nhảy 420.
Thử thách
KhóKhiến các tảng đá trôi, xoay và xuất hiện lại ở mép đối diện.
- Trong
rock.gd, thêm_physics_process: di chuyển theovelocity * deltavà cộng0.5 * deltavàorotation. - Khi vượt qua
-30hoặc670trên trục x, di chuyển nó700theo hướng ngược lại. - Khi vượt qua
-30hoặc390trên trục y, di chuyển nó420theo hướng ngược lại.
Nhấn Chơi: các tảng đá lăn qua màn hình rồi quay lại. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Area2D
var velocity = Vector2.ZERO
# Bursts into dust where the rock is. Call it when the rock breaks.
func burst():
var dust = CPUParticles2D.new()
dust.position = position
dust.one_shot = true
dust.explosiveness = 1.0
dust.amount = 20
dust.lifetime = 0.7
dust.spread = 180.0
dust.gravity = Vector2.ZERO
dust.initial_velocity_min = 30.0
dust.initial_velocity_max = 120.0 * scale.x
dust.scale_amount_min = 2.0
dust.scale_amount_max = 5.0
dust.color = Color(0.75, 0.82, 0.95)
dust.finished.connect(dust.queue_free)
get_parent().add_child(dust)
dust.emitting = true
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óa2Dự án: Trò chơi bắn thiên thạch
Xoay con tàuKhởi động động cơTự luyện tập: Playground Godot