お世話になります
フォグを有効にしているときにChangeWindowModeを使うと
画像全部分がSetFogColorで設定した色になってしまいます
前にも似たような質問があるので載せておきます
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1645
back.bmpはサンプルプログラム実行用フォルダにあるものです
DxLib ver3.02c
WindowsVista
VC++2010Express
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
DxLib_Init();
SetChangeScreenModeGraphicsSystemResetFlag(FALSE);
SetDrawScreen(DX_SCREEN_BACK);
SetFogEnable(TRUE);
SetFogColor(255, 0, 255); // 紫
SetFogStartEnd(200.0f, 1500.0f);
int GrHandle = LoadGraph("back.bmp");
char key[256];
VERTEX3D Vertex[6];
// 2ポリゴン分の頂点のデータをセット
Vertex[ 0 ].pos = VGet( 120.0f, 340.0f, 500.0f ) ;
Vertex[ 0 ].norm = VGet( 0.0f, 0.0f, 0.0f ) ;
Vertex[ 0 ].dif = GetColorU8( 255,255,255,255 ) ;
Vertex[ 0 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vertex[ 0 ].u = 0.0f ;
Vertex[ 0 ].v = 0.0f ;
Vertex[ 0 ].su = 0.0f ;
Vertex[ 0 ].sv = 0.0f ;
Vertex[ 1 ].pos = VGet( 520.0f, 340.0f, 500.0f ) ;
Vertex[ 1 ].norm = VGet( 0.0f, 0.0f, 0.0f ) ;
Vertex[ 1 ].dif = GetColorU8( 255,255,255,255 ) ;
Vertex[ 1 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vertex[ 1 ].u = 1.0f ;
Vertex[ 1 ].v = 0.0f ;
Vertex[ 1 ].su = 0.0f ;
Vertex[ 1 ].sv = 0.0f ;
Vertex[ 2 ].pos = VGet( 120.0f, 140.0f, 0.0f ) ;
Vertex[ 2 ].norm = VGet( 0.0f, 0.0f, 0.0f ) ;
Vertex[ 2 ].dif = GetColorU8( 255,255,255,255 ) ;
Vertex[ 2 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vertex[ 2 ].u = 0.0f ;
Vertex[ 2 ].v = 1.0f ;
Vertex[ 2 ].su = 0.0f ;
Vertex[ 2 ].sv = 0.0f ;
Vertex[ 3 ].pos = VGet( 520.0f, 140.0f, 0.0f ) ;
Vertex[ 3 ].norm = VGet( 0.0f, 0.0f, 0.0f ) ;
Vertex[ 3 ].dif = GetColorU8( 255,255,255,255 ) ;
Vertex[ 3 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vertex[ 3 ].u = 1.0f ;
Vertex[ 3 ].v = 1.0f ;
Vertex[ 3 ].su = 0.0f ;
Vertex[ 3 ].sv = 0.0f ;
Vertex[ 4 ].pos = VGet( 120.0f, 140.0f, 0.0f ) ;
Vertex[ 4 ].norm = VGet( 0.0f, 0.0f, 0.0f ) ;
Vertex[ 4 ].dif = GetColorU8( 255,255,255,255 ) ;
Vertex[ 4 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vertex[ 4 ].u = 0.0f ;
Vertex[ 4 ].v = 1.0f ;
Vertex[ 4 ].su = 0.0f ;
Vertex[ 4 ].sv = 0.0f ;
Vertex[ 5 ].pos = VGet( 520.0f, 340.0f, 500.0f ) ;
Vertex[ 5 ].norm = VGet( 0.0f, 0.0f, 0.0f ) ;
Vertex[ 5 ].dif = GetColorU8( 255,255,255,255 ) ;
Vertex[ 5 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vertex[ 5 ].u = 1.0f ;
Vertex[ 5 ].v = 0.0f ;
Vertex[ 5 ].su = 0.0f ;
Vertex[ 5 ].sv = 0.0f ;
while( !ProcessMessage() )
{
ClearDrawScreen();
GetHitKeyStateAll(key);
DrawPolygon3D(Vertex, 2, GrHandle, FALSE);
if( key[KEY_INPUT_A] ) ChangeWindowMode(FALSE);
if( key[KEY_INPUT_S] ) ChangeWindowMode(TRUE);
if( key[KEY_INPUT_ESCAPE] ) break;
ScreenFlip();
}
DxLib_End();
return 0;
}
よろしくお願いします