사용자 도구

사이트 도구


사이드바

language:gamemaker:2-서피스

튜토리얼 번역 : 진행 중

서피스란

  • 그림을 그리기 위한 특별한 공간… 개발자한테는 작업용 메모리 버퍼라는 설명이 나을지도.
  • 개념은 단순하나, 활용 방법이 역시 문제.
  • 창의성과 기발함이 필요한 듯.

튜토리얼 11 서피스 사용 부분 정리

주의사항

  • 서피스는 다 사용하고 나면 삭제 해야 한다.
  • 삭제를 위해서 변수에 따로 저장해 둬야 한다.

기본 순서

  1. 서피스용 오브젝트를 하나 만든다.
  2. Create Event에 인스턴스 변수를 추가한다. 이 변수는 앞으로 서피스를 저장하는 용도 변수로 쓴다.
    surf = -1;
  3. Room End Event를 추가한다. 서피스를 삭제하는 코드를 넣는다.
    if surface_exists(surf) surface_free(surf);
  4. 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 · 마지막으로 수정됨: 2012/11/19 12:17 (바깥 편집)