Menu
CoddyTech

브레이크아웃 목숨

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을 처리하는 것처럼 이 신호를 받으세요. 이 신호가 호출하는 함수는 생명을 하나 차감하고 새 개수를 표시합니다. 점수 함수가 점수를 처리하는 방식과 같습니다.

challenge icon

챌린지

어려움

플레이어에게 목숨을 세 개 줍니다.

  1. ball.gd에서 signal missed를 추가합니다. y = 380 아래에서 위에 나온 것처럼 신호를 보내고 다시 공을 서브합니다.
  2. main.gd에서 var lives = 3을 추가하고 $HUD/Lives에 Lives: 3을 표시합니다.
  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 플레이그라운드