いつもお世話になっております。
ChangeWindowModeを実行した際の動作についてご質問させて下さい。
「Kabe.mqo」の材質として
KabeTex.bmp(模様)
a_KabeTex.bmp(透明)
を設定し、モデルに適用しました。
※「Kabe.mqo」はサンプルプログラムの「31.迷路を3Dで表示」の
Kabe.mqo内のフレーム名「1111」以外を削除し、面を反転させたものです。
「a_KabeTex.bmp」は真っ白の画像の中央に黒い円を描いたものです。
ChangeWindowModeを実行すると透明に設定した部分が無視され、本来透過される中央の円部分が
透過されなくなりました。フルスクリーンからウィンドウに、その逆でも同様でした。
以下にサンプルを記載させていただきます。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int KabeModel;
ChangeWindowMode( TRUE );
SetGraphMode(640, 480, 32);
SetChangeScreenModeGraphicsSystemResetFlag(FALSE);
if( DxLib_Init() < 0 ) return -1;
SetDrawScreen( DX_SCREEN_BACK ) ;
KabeModel = MV1LoadModel( "Kabe.mqo" ) ;
MV1SetPosition( KabeModel, VGet( 320.0f, -300.0f, 600.0f ) ) ;
int WindowMode = TRUE;
int check = 0;
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )
{
ClearDrawScreen() ;
int Key = CheckHitKey(KEY_INPUT_A);
if(Key == 1)
{
check++;
}
else
{
check = 0;
}
if(check == 1)
{
if(WindowMode == TRUE)
{
WindowMode = FALSE;
}
else
{
WindowMode = TRUE;
}
ChangeWindowMode(WindowMode);
}
MV1DrawModel( KabeModel ) ;
ScreenFlip() ;
}
DxLib_End() ;
return 0 ;
}
ご検証よろしくお願いします。