====== 튜토리얼 번역 : 진행 중 ====== * {{:language:gamemaker:20121116-surface-tutorial-kor.7z|}} 서피스란 * 그림을 그리기 위한 특별한 공간... 개발자한테는 작업용 메모리 버퍼라는 설명이 나을지도. * 개념은 단순하나, 활용 방법이 역시 문제. * 창의성과 기발함이 필요한 듯. 튜토리얼 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( <색상>, <알파값> ) * 서피스에 사용하면 좋은 함수로, <색상>으로 화면을 지운다. <알파값>만큼 반투명하게 칠한다. ====== 블렌드 모드 ====== 블랜드 연산 시 참고가 되는 이미지 : 출처는 [[http://gmc.yoyogames.com/index.php?showtopic=512187|게임 메이커 커뮤니티]] {{:language:gamemaker:blendmodes.png|}} {{:language:gamemaker:blendmodes2.png|}} {{:language:gamemaker:blendmodes3.png|}} {{:language:gamemaker:blendmodes4.png|}} {{:language:gamemaker:blendmodes5.png|}}