Điểm số trong Breakout
Thuộc phần Dự án trong hành trình Godot của Coddy. Bài học 7 trên 36.
Mỗi viên gạch có giá trị 10 điểm. Quả bóng biết khi nào nó phá vỡ một viên gạch, còn main.gd lưu điểm số. Một tín hiệu kết nối chúng. Quả bóng phát tín hiệu đó mỗi khi phá vỡ một viên gạch, còn tập lệnh chính lắng nghe tín hiệu.
Trong ball.gd, khai báo tín hiệu ở đầu tệp và phát tín hiệu bên cạnh smash():
signal brick_broken
# Trong _on_body_entered, sau body.smash():
brick_broken.emit()Trong main.gd, kết nối tín hiệu trong _ready và cộng điểm trong hàm mà tín hiệu gọi:
func _on_brick_broken():
score += 10
$HUD/Score.text = "Score: %d" % scoreNhãn nằm trong một CanvasLayer có tên HUD. Trong _ready, hãy đặt nhãn thành Score: 0 nữa, nếu không nhãn sẽ trống cho đến khi viên gạch đầu tiên bị phá vỡ.
Thử thách
Trung bìnhNhận 10 điểm cho mỗi viên gạch.
- Trong
ball.gd, thêmsignal brick_brokenvà phát tín hiệu đó khi một viên gạch vỡ. - Trong
main.gd, thêmvar score = 0và hiển thịScore: 0trong$HUD/Scoreở_ready. - Kết nối
$Ball.brick_brokenvới một hàm cộng thêm 10 và hiển thị điểm số.
Nhấn Chơi và phá một viên gạch: nhãn hiển thị Score: 10. 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)]
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)
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