처음부터 Lua 시작: 사용자 정의 부팅 스크립트 사용

모든 Stingray 프로젝트에는 부팅 스크립트가 하나 있는데, 이 스크립트는 게임 엔진이 메모리로 로드하여 시작 시 즉시 실행하는 Lua 파일입니다. 부팅 스크립트는 시작, 업데이트 및 종료 프로세스의 사전에 지정된 지점에서 게임 엔진이 호출하는 함수 세트에 대한 정의를 제공하는 역할을 합니다. 자체 부팅 스크립트(또는 부팅 스크립트가 로드하는 기타 스크립트 파일)에서 이러한 기능을 구현하여 게임 엔진이 패키지 및 수준을 로드 및 언로드하고, 게임 표준을 렌더링하고 변화하는 게임 플레이 조건 및 사용자 상호작용에 반응하는 방식을 제어할 수 있습니다.

부팅 스크립트 지정

게임 settings.ini 파일 내에서 boot_script 특성의 값을 보면 부팅 스크립트 파일을 파악할 수 있습니다. 예:

boot_script = "scripts/game/boot/boot"

다른 Stingray 리소스와 마찬가지로 이 경로 역시 /를 디렉토리 구분자로 사용하고 Lua 스크립트 파일의 확장자는 생략되어 있습니다.

settings.ini 파일에 대한 자세한 내용은 Stingray 엔진 settings.ini 파일 참조를 참조하십시오.

게임 엔진에서 호출하는 함수

Stingray 게임 엔진은 게임 내에서 사용자 정의할 수 있는 다음 전역 Lua 함수를 호출합니다.

init()

이 함수는 부팅 스크립트가 로드되어 실행된 후 한 번만 호출됩니다.

일반적으로 즉시 필요한 리소스 패키지 로드 프로세스를 시작하고 간단한 시작 화면 또는 로드 화면을 표시할 수 있습니다.

update(deltaTime)

이 함수는 기본 게임 루프의 모든 프레임마다 호출됩니다. 게임의 시간 단계를 나타내는 인수 하나를 전달합니다.

이 함수는 각 프레임에서 수행해야 하는 모든 증분 업데이트를 수행하고 update()에 대한 이전 호출 이후 발생했을 수 있는 이벤트에 응답하기에 좋은 위치입니다.

계산의 일부 지점에서 이 함수는 일반적으로 현재 게임 표준의 World.update() 함수를 호출합니다. 호출된 이 함수는 지정된 시간 단계에 따라 표준을 진행합니다. 그 다음 해당 게임 표준에서 수행 중인 모든 애니메이션 및 물리적 시뮬레이션을 업데이트합니다.

render()

이 함수는 update() 함수 완료 후 기본 게임 루프의 각 프레임마다 한 번씩 호출됩니다.

현재 프레임에서 어떤 렌더링 작업을 수행해야 할지 게임 엔진에 알립니다. 일반적으로, 이 함수는 플레이어를 위해 현재 게임 표준을 렌더링하기 위해 Application.render_world() 함수를 호출합니다. 또한 카메라, 뷰포트 및 음영처리 환경과 같이 렌더링 관련 오브젝트를 설정할 수도 있습니다.

shutdown()

이 함수는 게임 엔진 종료 시 한 번 호출됩니다.

이 함수는 뷰포트, 음영처리 환경 및 표준과 같이 현재 사용 중인 모든 오브젝트를 삭제 또는 릴리스하고 여전히 메모리에 남아 있는 모든 리소스 패키지를 언로드 및 릴리스합니다.

관련 항목