RPGやアクションでプレイヤー用のテクスチャ「横16*縦32が縦横ともに3つ並んだ画像」を地形の高さごとに大きさ変えるために
LoadDivGraphとDrawPolygon3Dを使いたいと思いましたが、
分割された画像をDrawPolygon3Dで使うと、分割されていない全体が表示されてしまいます。
環境はXP VC6.0です
#include <DxLib.h>
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
/*ウィンドウズモード*/
ChangeWindowMode(TRUE);
/*解像度*/
SetGraphMode(320,240,16);
/*拡大 2倍*/
SetWindowSizeExtendRate(2.0);
if( DxLib_Init() == -1 ) return -1;
SetDrawScreen( DX_SCREEN_BACK );
int graph[9];
int ret = LoadDivGraph("player1_walk.bmp",9,3,3,16,32,graph);
while(CheckHitKey( KEY_INPUT_ESCAPE ) == 0)
{
if( ProcessMessage() == -1) break;
VERTEX_3D Vertex[6];
/*(0,0)に16*32サイズを表示*/
/*左上*/
Vertex[0].pos.x = 0.0F; Vertex[0].pos.y = 240;Vertex[0].pos.z = 20.F;
Vertex[0].u = 0.0F;
Vertex[0].v = 0.0F;
/*右上*/
Vertex[1].pos.x = 16.0F; Vertex[1].pos.y = 240;Vertex[1].pos.z = 20.F;
Vertex[1].u = 1.0F ;
Vertex[1].v = 0.0F ;
Vertex[3] = Vertex[1];
/*左下*/
Vertex[2].pos.x = 0.0F; Vertex[2].pos.y = 208;Vertex[2].pos.z = 20.F;
Vertex[2].u = 0.0F;
Vertex[2].v = 1.0F;
Vertex[4] = Vertex[2];
/*右下*/
Vertex[5].pos.x = 16.0F; Vertex[5].pos.y = 208;Vertex[5].pos.z = 20.F;
Vertex[5].u = 1.0F ;
Vertex[5].v = 1.0F ;
Vertex[0].r = Vertex[1].r = Vertex[2].r = Vertex[3].r = Vertex[4].r = Vertex[5].r = 255;
Vertex[0].g = Vertex[1].g = Vertex[2].g = Vertex[3].g = Vertex[4].g = Vertex[5].g = 255;
Vertex[0].b = Vertex[1].b = Vertex[2].b = Vertex[3].b = Vertex[4].b = Vertex[5].b = 255;
Vertex[0].a = Vertex[1].a = Vertex[2].a = Vertex[3].a = Vertex[4].a = Vertex[5].a = 255;
DrawPolygon3D(Vertex,2,graph[3],TRUE);
ScreenFlip();
}
DxLib_End();
return 0;
}
よろしくお願いします