language:gamemaker:2-서피스
튜토리얼 번역 : 진행 중
서피스란
- 그림을 그리기 위한 특별한 공간… 개발자한테는 작업용 메모리 버퍼라는 설명이 나을지도.
- 개념은 단순하나, 활용 방법이 역시 문제.
- 창의성과 기발함이 필요한 듯.
튜토리얼 11 서피스 사용 부분 정리
주의사항
- 서피스는 다 사용하고 나면 삭제 해야 한다.
- 삭제를 위해서 변수에 따로 저장해 둬야 한다.
기본 순서
- 서피스용 오브젝트를 하나 만든다.
- Create Event에 인스턴스 변수를 추가한다. 이 변수는 앞으로 서피스를 저장하는 용도 변수로 쓴다.
surf = -1;
- Room End Event를 추가한다. 서피스를 삭제하는 코드를 넣는다.
if surface_exists(surf) surface_free(surf);
- Draw Event에 서피스를 제어하는 코드를 넣는다. 우선은 서피스가 없기 때문에 만드는 코드를 추가해야 한다. 예시는,
// 이미 서피스가 있으므로 그냥 그린다. if surface_exists(surf) { draw_surface(surf, 0, 0); } else { //-- 서피스가 없으므로 하나 추가, 방크기로 만든다. surf = surface_create( room_width, room_height ); //-- 서피스 제어하는 코드 시작 -- }
서피스에 사용되는 함수 정리
surface_exists(<서피스 변수>)
- <서피스변수> 서피스가 있는지 확인. (-1인지 검사하는 건가?)
surface_free(<서피스 변수>)
- 서피스 삭제, 이미지 삭제된 것을 또 삭제하는 것을 피하기 위해서 surface_exists()와 같이 사용
surface_create( <너비>, <높이> )
- 리턴값 있다. 새로 만든 서피스는 꼭 변수에 저장해야 한다.
surface_set_target(<서피스 변수>)
- 그리기 함수를 사용시, 이 서피스에 그리라는 함수. 사용을 마치면 반드시, surface_reset_target()으로 원래 그리는 대상(실제화면)으로 되돌려야 한다.
surface_reset_target()
- 그리는 화면을 원래 대로 돌린다. surface_set_target()와 같이 사용한다.
그리기(드로잉) 함수 정리
draw_clear_alpha( <색상>, <알파값> )
- 서피스에 사용하면 좋은 함수로, <색상>으로 화면을 지운다. <알파값>만큼 반투명하게 칠한다.
블렌드 모드
language/gamemaker/2-서피스.txt · 마지막으로 수정됨: 2024/04/23 22:44 저자 127.0.0.1