브레이크아웃 점수
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 36개 중 7번째.
벽돌 하나마다 10점입니다. 공은 벽돌을 부수면 이를 알아차리고, main.gd가 점수를 관리합니다. 신호가 둘을 연결합니다. 공은 벽돌이 부서질 때마다 신호를 내보내고, 메인 스크립트는 이를 수신합니다.
ball.gd에서 맨 위에 신호를 선언하고 smash() 옆에서 신호를 내보내세요.
signal brick_broken
# _on_body_entered에서 body.smash() 다음에:
brick_broken.emit()main.gd에서 _ready에 신호를 연결하고, 신호가 호출하는 함수에서 점수를 추가하세요.
func _on_brick_broken():
score += 10
$HUD/Score.text = "Score: %d" % score레이블은 HUD라는 CanvasLayer 안에 있습니다. _ready에서도 Score: 0으로 설정하세요. 그렇지 않으면 첫 번째 벽돌이 부서질 때까지 비어 있습니다.
챌린지
중급벽돌 하나마다 10점을 얻으세요.
ball.gd에서signal brick_broken을 추가하고 벽돌이 부서질 때 신호를 발생시키세요.main.gd에서var score = 0을 추가하고_ready에서$HUD/Score에Score: 0을 표시하세요.$Ball.brick_broken을 점수를 10점 더하고 점수를 표시하는 함수에 연결하세요.
‘플레이’를 누르고 벽돌을 부수세요. 레이블에 Score: 10이 표시됩니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
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)
프로젝트의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드