브레이크아웃 목숨
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 36개 중 8번째.
패들이 공을 놓치면 공은 아래쪽으로 빠져나갑니다. 플레이어에게 생명 3개를 주세요.
ball.gd에서 공이 y = 380 아래에 있으면 놓친 것입니다. missed 신호를 내보내고 패들 위쪽에서 공을 다시 서브하세요:
if position.y > 380:
missed.emit()
position = Vector2(320, 290)
velocity = Vector2(110, -280)main.gd에서 brick_broken을 처리하는 것처럼 이 신호를 받으세요. 이 신호가 호출하는 함수는 생명을 하나 차감하고 새 개수를 표시합니다. 점수 함수가 점수를 처리하는 방식과 같습니다.
챌린지
어려움플레이어에게 목숨을 세 개 줍니다.
ball.gd에서signal missed를 추가합니다.y = 380아래에서 위에 나온 것처럼 신호를 보내고 다시 공을 서브합니다.main.gd에서var lives = 3을 추가하고$HUD/Lives에Lives: 3을 표시합니다.$Ball.missed를_on_missed에 연결합니다. 이 함수는 목숨을 하나 차감하고 남은 목숨을 표시합니다.
‘플레이’를 누르고 공을 놓쳐 보세요. 라벨에 Lives: 2가 표시되고 새 공이 나옵니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
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
프로젝트의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드