Mạng trong Breakout
Thuộc phần Dự án trong hành trình Godot của Coddy. Bài học 8 trên 36.
Khi thanh đỡ đánh trượt, bóng rơi khỏi cạnh dưới. Hãy cho người chơi ba mạng.
Trong ball.gd, bóng bị đánh trượt khi ở dưới y = 380. Phát tín hiệu missed rồi đưa bóng trở lại phía trên thanh đỡ:
if position.y > 380:
missed.emit()
position = Vector2(320, 290)
velocity = Vector2(110, -280)Trong main.gd, hãy lắng nghe tín hiệu này giống như khi lắng nghe brick_broken. Hàm được gọi sẽ trừ một mạng và hiển thị số mạng mới, tương tự như hàm tính điểm với điểm số.
Thử thách
KhóCho người chơi ba mạng.
- Trong
ball.gd, thêmsignal missed. Bên dướiy = 380, phát tín hiệu đó và đưa bóng trở lại như đã trình bày ở trên. - Trong
main.gd, thêmvar lives = 3và hiển thịLives: 3trong$HUD/Lives. - Kết nối
$Ball.missedvới_on_missed, hàm này trừ một mạng và hiển thị số mạng còn lại.
Nhấn Chơi rồi để bóng rơi: nhãn hiển thị Lives: 2 và một quả bóng mới xuất hiện. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Node2D
const BRICK = preload("res://brick.tscn")
const COLORS = [Color(1, 0.42, 0.42), Color(1, 0.78, 0.34), Color(0.49, 0.95, 0.75), Color(0.369, 0.635, 1), Color(0.75, 0.82, 0.95)]
var score = 0
func _ready():
for row in 5:
for column in 8:
var brick = BRICK.instantiate()
brick.position = Vector2(68 + column * 72, 60 + row * 26)
brick.color = COLORS[row]
add_child(brick)
$Ball.brick_broken.connect(_on_brick_broken)
$HUD/Score.text = "Score: 0"
func _on_brick_broken():
score += 10
$HUD/Score.text = "Score: %d" % score
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óaTự luyện tập: Playground Godot