draw_enable_drawevent 함수 설명
draw_enable_drawevent
함수는 게임 내 모든 인스턴스의 드로우 이벤트를 활성화(true) 또는 비활성화(false)할 수 있게 해줍니다. 이를 통해 언제 어떻게 화면에 그려질지를 제어할 수 있으며, "프레임 스킵" 기법을 구현할 때 유용합니다. 이 함수는 단순히 인스턴스가 화면에 그려지는 것을 방지하는 것이 아니라, 드로우 이벤트를 완전히 억제하기 때문에 주의가 필요합니다. 드로우 이벤트에 있는 게임 로직도 실행되지 않게 됩니다.
이 함수에 대해 이해해야 할 중요한 점은, 게임이 시작될 때 (즉, 게임의 첫 번째 방에 있는 첫 번째 객체의 생성 이벤트 전에) 호출하면 게임 창이 렌더링되지 않는다는 것입니다. 이는 렌더링이 필요 없는 전용 서버가 필요한 멀티플레이어 프로젝트에 유용할 수 있지만, GameMaker는 헤드리스 모드를 지원하지 않으므로 그래픽 인터페이스가 없는 서버에서 실행할 수는 없습니다.
문법
draw_enable_drawevent(enable);
인수
인수 | 타입 | 설명 |
---|---|---|
Enable | Boolean | true 또는 false로 설정 |
반환값
없음
예제
frame_skip++;
if (frame_skip mod 5) == 0 {
draw_enable_drawevent(true);
} else {
draw_enable_drawevent(false);
}
위의 코드는 변수를 확인하고, true를 반환하면 드로우 이벤트를 활성화하고, 그렇지 않으면 드로우 이벤트를 비활성화합니다.
활용 예제
1. 프레임 스킵 구현
if (frame_count mod 10 == 0) {
draw_enable_drawevent(true);
} else {
draw_enable_drawevent(false);
}
2. 특정 조건에서 드로우 이벤트 비활성화
if (player_health < 20) {
draw_enable_drawevent(false);
} else {
draw_enable_drawevent(true);
}
3. 멀티플레이어 서버에서 드로우 이벤트 비활성화
if (is_server) {
draw_enable_drawevent(false);
}
4. 게임 로딩 화면에서 드로우 이벤트 비활성화
if (loading) {
draw_enable_drawevent(false);
} else {
draw_enable_drawevent(true);
}
5. 특정 시간 동안 드로우 이벤트 비활성화
if (timer < 100) {
draw_enable_drawevent(false);
} else {
draw_enable_drawevent(true);
}