글
자동연사 딜레이가 플레이어가 발사 버튼을 누른 간격에 따라 자동으로 조절되게 하는 방법.
변수 선언: (이하는 룸 간 자동연사 간격을 유지하기 위해 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++;
}
위는 비단 슈팅 게임 뿐 아니라 다른 장르의 게임에서도 자동공격 딜레이를 조절 가능하게 하고 싶을 때 이용할 수 있다.
'기타 > 겜메 뻘팁' 카테고리의 다른 글
| 유도탄이 피격이 불가능하게 설정된 상태의 오브젝트 주위를 맴돌지 않게 하는 법 (0) | 2025.12.20 |
|---|---|
| Round half away from zero 반올림 알고리즘과 각도 정밀도 제한 알고리즘 (0) | 2025.12.16 |
| (GMS2)동일한 오브젝트에 의해 중복 피격되는 걸 방지하는 방법 (0) | 2025.11.16 |
| BGM 파일들을 한 파일에 몰아넣기 (2) | 2025.08.09 |
| 스프라이트의 중심 정확하게 맞추기 (백업본) (1) | 2023.06.03 |
RECENT COMMENT