게임 재시작하기
이 문서에서는 게임을 재시작하는 방법에 대해 설명합니다. 이 기능은 게임을 처음 실행하는 것과 비슷하며, `다른 - 게임 시작 이벤트`와 `다른 - 게임 종료 이벤트`가 트리거됩니다.
## 주의사항
- **전역 변수**: 명시적으로 재초기화하도록 코딩하지 않는 한, 전역 변수는 재설정되지 않습니다. 따라서 게임의 첫 번째 룸에서 정의하고 설정하지 않았다면, 이전 값을 유지합니다.
- **데이터 구조 및 파티클**: 이들은 재시작 전에 수동으로 해제해야 하며, `게임 종료 이벤트`에서 해제하는 것이 좋습니다.
- **재시작 타이밍**: 게임이 이 동작이 호출된 바로 다음에 재시작되는 것이 아니라, 이 동작이 포함된 스크립트나 이벤트의 끝에서 재시작됩니다. 후속 동작이 있을 경우에는 그 동작이 모두 실행된 후에 게임이 재시작됩니다.
## 동작 구문 예제
아래 예제는 게임패드 버튼이 눌리면 게임을 재시작하는 코드 블록을 보여줍니다.
```gml
if (gamepad_button_check(0, gp_face1)) {
game_restart();
}
다양한 활용 및 응용 예제
| 예제 설명 | 코드 스니펫 |
|---|---|
| 게임을 재시작할 때 확인 메시지 띄우기 | ```gml |
| if (gamepad_button_check(0, gp_face1)) { | |
| show_message("게임을 재시작 하시겠습니까?"); | |
| game_restart(); | |
| } | |
| ``` | |
| 일정 시간 후 자동으로 게임 재시작하기 | ```gml |
| alarm[0] = room_speed * 60; | |
| ... | |
| if (alarm[0] == 0) { | |
| game_restart(); | |
| } | |
| ``` | |
| 특정 조건에서만 게임을 재시작하기 | ```gml |
| if (score >= target_score) { | |
| game_restart(); | |
| } | |
| ``` |
이와 같은 방식을 통해 게임 재시작 기능을 상황에 맞게 유연하게 활용할 수 있습니다. ```