今回DrawPolygonIndexed3Dを使って画像を変形描画してみようとして以下のようなプログラムを組んでみました
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
// DXライブラリの初期化
if (DxLib_Init() < 0)
{
// エラーが発生したら直ちに終了
return -1;
}
VERTEX3D Vertex[6];
WORD Index[6];
// 2ポリゴン分の頂点のデータをセット
int img = LoadGraph("test.png");
Vertex[0].pos = VGet(100.0f, 100.0f, 0.0f);
Vertex[0].norm = VGet(0.0f, 0.0f, -1.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(200.0f, 100.0f, 0.0f);
Vertex[1].norm = VGet(0.0f, 0.0f, -1.0f);
Vertex[1].dif = GetColorU8(255, 0, 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(100.0f, 200.0f, 0.0f);
Vertex[2].norm = VGet(0.0f, 0.0f, -1.0f);
Vertex[2].dif = GetColorU8(0, 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(200.0f, 200.0f, 0.0f);
Vertex[3].norm = VGet(0.0f, 0.0f, -1.0f);
Vertex[3].dif = GetColorU8(0, 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;
Index[0] = 0;
Index[1] = 1;
Index[2] = 2;
Index[3] = 1;
Index[4] = 2;
Index[5] = 3;
// ESCキーが押されるかウインドウが閉じられるまでループ
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
{
// 画面をクリア
ClearDrawScreen();
DrawBox(0, 0, 1000, 1000, GetColor(255, 255, 255), TRUE);
DrawPolygonIndexed3D(Vertex, 4, Index,2, img, TRUE);
// 裏画面の内容を表画面に反映
ScreenFlip();
}
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
どうすれば反転されずに描画されるのでしょうか。
初心者ですがよろしくお願いします。