DX라이브러리

2.3 알파블렌딩

게임을만들어보자 2014. 12. 23. 11:32

2.3 알파블렌딩


알파블렌딩에서의 알파는 투명도를 이야기 하는 것이며 두 이미지의 알파를 블렌딩한다는 것 즉, 반투명 효과를 말한다. 이 처리를 위한 흐름은 다음과 같다.


- 이미지 처리 방법을 알파블렌딩으로 설정

- 이미지A를 화면에 표시

- 이미지 처리 방법을 본래대로 돌림.


이 기능을 위해선 SetDrawBlendMode함수를 사용한다. 리퍼런스는 여기서 확인.


선언 

 int SetDrawBlendMode( int BlendMode , int Pal );

기능

 이미지의 알파블렌딩

인수

 BlendMode : 블렌딩 모드 설정

  - DX_BLENDMODE_NOBLEND : 노블렌딩(디폴트)

  - DX_BLENDMODE_ALPHA : 알파블렌딩

 Pal : 블렌드모드 파라메터 (0~255)


첫번째 인수는 차후에 설명하기로 하며 일단 DX_BLENDMODE_ALPHA 로 고정. 두번째 인수는 0에서 완전 투명 255에서 완전 불투명의 단계로 설정 가능.


사용예제

#include <DxLib.h>


#define PI 3.141592654


int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );


        int x = 100;

        int Handle;

        Handle = LoadGraph( "image/character_00.png" );


        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){


                DrawRotaGraph( 400, 200, 2.0, PI*x, Handle, TRUE );


                SetDrawBlendMode( DX_BLENDMODE_ALPHA,  128); //블렌드모드 128/255 설정

DrawRotaGraph(   x, 200, 1.0,  0.0, Handle, TRUE );

SetDrawBlendMode( DX_BLENDMODE_NOBLEND,  0 ); //블렌드모드 OFF


x++;


}


DxLib_End();

return 0;


실행결과