現在新・ゲームプログラミングの館(http://dixq.net/g/index.html)でDXライブラリについて学習しているのですが、2.3章、2.4章にて登場するSetDrawBlendMode関数がうまく機能しなくて困っています。
具体的にいえば2.4章のサンプルプログラム
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定
int Handle; // 画像格納用ハンドル
Handle = LoadGraph( "画像/弾00.png" ); // 画像のロード
// while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128 ); //ブレンドモードをα(128/255)に設定
DrawGraph( 100, 200, Handle, TRUE ); //画像の描画
DrawGraph( 120, 200, Handle, TRUE ); //画像の描画
DrawGraph( 140, 200, Handle, TRUE ); //画像の描画
DrawGraph( 160, 200, Handle, TRUE ); //画像の描画
DrawGraph( 180, 200, Handle, TRUE ); //画像の描画
DrawGraph( 200, 200, Handle, TRUE ); //画像の描画
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 ); //ブレンドモードをオフ
SetDrawBlendMode( DX_BLENDMODE_ADD, 255 ); //ブレンドモードを加算(255/255)に設定
DrawGraph( 300, 200, Handle, TRUE ); //画像の描画
DrawGraph( 320, 200, Handle, TRUE ); //画像の描画
DrawGraph( 340, 200, Handle, TRUE ); //画像の描画
DrawGraph( 360, 200, Handle, TRUE ); //画像の描画
DrawGraph( 380, 200, Handle, TRUE ); //画像の描画
DrawGraph( 400, 200, Handle, TRUE ); //画像の描画
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 ); //ブレンドモードをオフ
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
なお12行目の
SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128 );
をコメントアウトし同様に実行すると13行目から18行目の6つの画像はうつりますが、もちろんブレンドはされないままです。
21行目の
SetDrawBlendMode( DX_BLENDMODE_ADD, 255 );
についても全く同様です。
また、ビルドそのものは正常終了しています。
環境は
Windows8 pro (MAC OS X mountain lion+paralles8で仮想化して使っています)
Microsoft Visual Studio 2012
です。
また、C言語の経験は入門書をひと通り読み終わった程度です。プログラミングの経験そのものもC言語以外にはほとんどありません。
なんとか画像のブレンドを行いたいので、もしよろしければご助言お願い致します。