자동연사 딜레이가 플레이어가 발사 버튼을 누른 간격에 따라 자동으로 조절되게 하는 방법.

 

변수 선언: (이하는 룸 간 자동연사 간격을 유지하기 위해 global 변수일 수 있다.)

#macro INITIAL_AUTOFIRE_RATE (초기 발사 간격, 대체로 30(프레임 단위))

autofire_delay = INITIAL_AUTOFIRE_RATE;
curr_autofire = INITIAL_AUTOFIRE_RATE;
autofire_count = 0;

 

발사 버튼을 눌렀을 때 마다 발동: (키보드의 특정 키나 조이패드의 특정 버튼 등)

if (autofire_delay >= curr_autofire)
{
	autofire_delay = max(1, curr_autofire); // 최대 1프레임 (0으로 나누기 오류로 인함)
}
// 자동연사 딜레이 카운터 리셋
curr_autofire = 0;
autofire_count = 0;

 

발사 버튼을 누르고 있는 동안 발동:

if (--autofire_count <= 0)
{
	(발사 스크립트)
	autofire_count = autofire_delay;
}

 

End Step 이벤트:

if (curr_autofire < INITIAL_AUTOFIRE_RATE)
{
	curr_autofire++;
}

 

위는 비단 슈팅 게임 뿐 아니라 다른 장르의 게임에서도 자동공격 딜레이를 조절 가능하게 하고 싶을 때 이용할 수 있다.

by SHOOTING_STAR 2025. 12. 12. 07:14