Menu
CoddyTech

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 -= 700

Cạ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.

challenge icon

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.

  1. Trong rock.gd, thêm _physics_process: di chuyển theo velocity * delta và cộng 0.5 * delta vào rotation.
  2. Khi vượt qua -30 hoặc 670 trên trục x, di chuyển nó 700 theo hướng ngược lại.
  3. Khi vượt qua -30 hoặc 390 trên trục y, di chuyển nó 420 theo 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

Tự luyện tập: Playground Godot