Menu
CoddyTech

브레이크아웃 게임 오버

Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 36개 중 9번째.

세 번 놓치면 게임이 끝나야 합니다. 목숨이 0이 되면 게임 오버를 표시하고 get_tree().paused = true로 일시 중지하세요. 패들과 공은 일시 중지 가능 상태이므로 멈춥니다. Main은 항상 실행되므로 계속 작동하며 Enter 키 입력을 읽을 수 있습니다:

func _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("action"):
		get_tree().paused = false
		get_tree().reload_current_scene()

다시 불러오기 전에 일시 중지를 해제하세요. 일시 중지는 장면이 아니라 트리에 적용되므로, 장면을 다시 불러오면 멈춘 상태로 시작하게 됩니다.

challenge icon

챌린지

어려움

마지막 생명이 사라지면 게임을 끝내세요.

  1. _on_missed에서 lives가 0일 때 $HUD/Message에 Game Over를 표시하고 게임을 일시 정지하세요.
  2. _process를 추가하세요. 게임이 일시 정지된 상태에서 action을 방금 눌렀다면 일시 정지를 해제한 다음 씬을 다시 불러오세요.

‘플레이’를 누르고 공 세 개를 놓쳐 보세요. Game Over가 표시되고 공이 멈춥니다. 엔터 키를 누르면 다시 시작됩니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

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
var lives = 3

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"
	$Ball.missed.connect(_on_missed)
	$HUD/Lives.text = "Lives: 3"

func _on_brick_broken():
	score += 10
	$HUD/Score.text = "Score: %d" % score

func _on_missed():
	lives -= 1
	$HUD/Lives.text = "Lives: %d" % lives

프로젝트의 모든 레슨

직접 연습해 보세요: Godot 플레이그라운드