#include "DxLib.h"
#pragma warning(disable : 4996)
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
char Buf[256];
BOOL cb_MouseRFlg = FALSE;
int BlendGraph, GrHandle1, GrHandle2, GrHandle3 ;
int index = 0;
int blend_pattarn[5];
blend_pattarn[0] = DX_BLENDMODE_NOBLEND; //ブレンドなし
blend_pattarn[1] = DX_BLENDMODE_ALPHA; //αブレンド
blend_pattarn[2] = DX_BLENDMODE_ADD; //加算ブレンド
blend_pattarn[3] = DX_BLENDMODE_SUB; //減算ブレンド
blend_pattarn[4] = DX_BLENDMODE_MUL; //乗算ブレンド
//blend_pattarn[4] = DX_BLENDMODE_MULA; //乗算ブレンド
//blend_pattarn[5] = DX_BLENDMODE_INVSRC; //反転ブレンド
char blend_text[5][30];
strcpy(blend_text[0],"DX_BLENDMODE_NOBLEND");
strcpy(blend_text[1],"DX_BLENDMODE_ALPHA");
strcpy(blend_text[2],"DX_BLENDMODE_ADD");
strcpy(blend_text[3],"DX_BLENDMODE_SUB");
strcpy(blend_text[4],"DX_BLENDMODE_MUL");
//strcpy(blend_text[4],"DX_BLENDMODE_MULA");
//strcpy(blend_text[5],"DX_BLENDMODE_INVSRC");
int blend_case = blend_pattarn[index];
// ウインドウモードに変更
ChangeWindowMode( TRUE );
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1 ; // エラーが起きたら直ちに終了
}
// 裏画面を使用
SetDrawScreen( DX_SCREEN_BACK ) ;
//ウインドウがアクティブではない状態でも処理を続行する
SetAlwaysRunFlag(TRUE);
// 二つの画像の読み込み
GrHandle1 = LoadGraph( "./bmp/***.bmp" ) ;
GrHandle2 = LoadGraph( "./bmp/***.bmp" ) ;
int x,y;
GetGraphSize(GrHandle2,&x,&y);
while(1)
{
// メッセージループに代わる処理をする
if( ProcessMessage() == -1 )
{
break ; // エラーが起きたらループを抜ける
}
//キーボード入力があれば処理する
if(CheckHitKeyAll(DX_CHECKINPUT_KEY) != 0)
{
//キーボード入力状態を取得
GetHitKeyStateAll(&Buf[0]);
//ESCチェック
if(Buf[KEY_INPUT_ESCAPE])
{
break;
}
}
//左マウス押下処理
if((GetMouseInput() & MOUSE_INPUT_RIGHT) != 0)
{
//LBUTTONDOWN時の場合のみ処理する
if(cb_MouseRFlg == FALSE)
{
index++;
if(index > 4) index = 0;
//::MessageBoxA(NULL,"左マウス押下","Sample",MB_OK);
cb_MouseRFlg = TRUE;
}
}
else
{
//マウスクリック判定(LBUTTON押下検知後、押し続け処理させない)
if(cb_MouseRFlg == TRUE)
{
cb_MouseRFlg = FALSE;
}
}
ClearDrawScreen() ;
//パラメータ強度 一律200
SetDrawBlendMode( blend_pattarn[index] , 200 ) ;
// 背景を描画
DrawGraph( 0 , 0 , GrHandle1 , FALSE ) ;
// 上に載せるグラフィックを描画
DrawGraph( 0 , 0 , GrHandle2 , TRUE ) ;
// グラフィックの部分を画面座標(100,100)に
// 透過色処理あり、反転処理なしで描画
//DrawRectGraph( 100, 100, 0, 0, x, y, GrHandle2, TRUE, FALSE ) ;
//->指定範囲外もブレンドされている
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) ;
DrawString(0,0,blend_text[index],GetColor(255,0,0));
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}