Re: DrawPolygon3Dのテクスチャを透過させる ( No.4 )
日時: 2009/09/16 14:31
名前: コーラ

色々と違う画像を張ってみた所、透過に成功しました。
実は、透過が失敗している画像は、MakeGraphで作った描画可能な画像です。
普通に2Dの描画でも透過ができていませんでした。
どうやら私は、このように作った画像を透過させる方法を理解していないようです。

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
// ウィンドウモード
ChangeWindowMode(TRUE);

if( DxLib_Init() == -1 ){
return -1;// エラーが起きたら直ちに終了
}

// 描画可能画像のハンドル
int SCR1 ;

// 描画可能画像の作成を指定
SetDrawValidGraphCreateFlag( TRUE ) ;
// R255 G0 B255を透明色にする
SetTransColor(255,0,255);
// 256x256 の描画可能画像を作成
SCR1 = MakeGraph( 256, 256 ) ;
SetDrawValidGraphCreateFlag( FALSE ) ;

// 描画先を描画可能画像にする
SetDrawScreen( SCR1 ) ;
// まず全体に透明色で塗り潰す
DrawBox(0,0,256,256,GetColor(255,0,255),TRUE);
// 左上に白いボックス描画する
DrawBox(0,0,64,64,GetColor(255,255,255),TRUE);

// 描画先を裏画面にする
SetDrawScreen(DX_SCREEN_BACK);
// 上で作った画像を、透過色有効で張る
DrawGraph(0,0,SCR1,TRUE);
// 表画面に反映
ScreenFlip();

// キーの入力待ち((6-3)『WaitKey』を使用)
WaitKey() ;
DxLib_End() ;// DXライブラリ使用の終了処理
return 0 ;// ソフトの終了
}

このプログラムは、最終的に黒い画面の左上に、白いボックスだけを表示させたいのですが、
透過色のR255G0B255も表示されてしまいます。
何が悪いのでしょうか?
すみませんが、よろしくお願いしますm(_ _)m