게임 재시작 함수 설명
game_restart
함수는 게임을 재시작하는 기능을 제공합니다. 게임을 재시작하는 것은 처음 실행하는 것과 같으며, 이로 인해 Game Start Event
와 Game End Event
가 모두 트리거됩니다.
주요 사항
call_later
로 생성된 모든 시간 소스는 게임을 재시작할 때 파괴됩니다.- 다음과 같은 것들은 재시작 시 초기화되지 않습니다:
- 전역 변수: 전역 변수는 명시적으로 코딩하지 않는 한 재초기화되지 않습니다. 예를 들어, 게임 중에 수정된 내장 전역 변수인
score
는 게임 재시작 후 0으로 시작하지 않습니다. - GPU 상태: 드로우 색상이나 알파 값을 설정한 경우, 재시작 후에도 변경된 값이 유지됩니다.
- 게임 속도: 게임 코드에서 설정한 속도는 재시작 후에도 유지됩니다.
- 자산 변경: 게임 실행 중에 변경된 자산(예: 스프라이트의 원점 변경, 경로 자산의 위치 이동)은 재시작 시 초기화되지 않습니다.
- 동적 리소스: 버퍼, 서피스, 데이터 구조 또는 가져온 스프라이트와 같은 동적 리소스는 정리되거나 제거되지 않습니다. 이 함수 사용 시 동적 리소스에 대한 전역 참조를 사용하거나, 함수 호출 전에 정리하는 것이 좋습니다.
구문
game_restart();
반환 값
- 해당 없음
활용 예제
- 키 입력으로 게임 재시작하기
gml if keyboard_check_pressed(ord("R")) { game_restart(); }
- 게임 종료 후 재시작 버튼 만들기
gml if game_over { if keyboard_check_pressed(ord("R")) { game_restart(); } }
- 특정 조건에서 자동으로 게임 재시작하기
gml if player_health <= 0 { game_restart(); }
요약 표
항목 | 설명 |
---|---|
함수 이름 | game_restart |
기능 | 게임을 재시작 |
이벤트 트리거 | Game Start Event, Game End Event |
초기화되지 않는 것 | 전역 변수, GPU 상태, 게임 속도, 자산 변경, 동적 리소스 |
구문 | game_restart(); |
반환 값 | 해당 없음 |
이 문서는 game_restart
함수의 기능과 사용 방법을 설명하고, 다양한 활용 예제를 제공하여 이해를 돕고자 합니다.