키를 눌러 다시 시작
Coddy Godot 여정의 게임 규칙 섹션에 포함된 레슨. 29개 중 15번째.
이 줄은 현재 장면을 버리고 파일에서 새로 불러옵니다:
get_tree().reload_current_scene()새 게임은 목숨이 3개인 상태로 시작하며, 플레이어는 초록색 사각형에 있고 게임 오버는 숨겨져 있습니다.
Main도 일시 정지되므로, _process는 키 입력을 감지하지 못합니다. Main 자체의 process_mode를 Node.PROCESS_MODE_ALWAYS로 설정하세요. 플레이어를 제외한 자식 노드에는 이 설정이 상속됩니다. 장면에서 플레이어를 Pausable로 설정했으므로 플레이어는 계속 멈춰 있습니다.
다시 불러와도 게임의 일시 정지는 해제되지 않습니다. 다시 불러오기 전에 get_tree().paused = false로 설정하세요. 그렇지 않으면 새 게임이 일시 정지된 상태로 시작합니다.
챌린지
쉬움게임 오버 후 플레이어가 E를 눌러 다시 플레이할 수 있게 하세요.
_ready()에서 이 노드 자체의process_mode를Node.PROCESS_MODE_ALWAYS로 설정하세요($는 사용하지 마세요)._process()에서lives가 0이고action을 방금 눌렀을 때, 게임 일시 정지를 해제한 다음 장면을 다시 불러오세요.
‘플레이’를 누르고 목숨을 세 번 잃은 다음 E를 누르세요. Lives: 3으로 새 게임이 시작됩니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
extends Node2D
var lives = 3
func _ready():
$HUD/Lives.text = "Lives: %d" % lives
$Player.hurt.connect(_on_player_hurt)
$Blink.timeout.connect(_on_blink_timeout)
$Blink.process_mode = Node.PROCESS_MODE_ALWAYS
func _process(delta):
pass
func _on_player_hurt():
lives -= 1
$HUD/Lives.text = "Lives: %d" % lives
if lives == 0:
$HUD/GameOver.visible = true
$HUD/Hint.visible = true
get_tree().paused = true
func _on_blink_timeout():
if lives == 0:
$HUD/GameOver.visible = not $HUD/GameOver.visible
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
게임 규칙의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드