반올림 알고리즘 중 Round half away from zero 알고리즘과 각도 정밀도 제한 알고리즘의 구현.

Round half away from zero 알고리즘의 채용 이유는 각도 정밀도 제한을 위한 반올림 과정에서 게임메이커 내장 round 함수가 값을 제대로 반환하지 않을 때가 존재하기 때문이다.

// round half away from zero
function rnd_haf0(_in)
{
	return (_in == 0) ? 0 : ((frac(abs(_in)) == 0) ? _in : (((frac(abs(_in)) >= 0.5) ? ceil(abs(_in)) : floor(abs(_in))) * sign(_in)));
}
// limit direction precision
function dir_prec_lim(_dir, _limit)
{
	return rnd_haf0(_dir / _limit) * _limit;
}

 

by SHOOTING_STAR 2025. 12. 16. 21:02