何となしにあるゲームの模倣プログラムを組み立てていたら→ちなみにAQUAというやつです……知ってる方いたらよろしく!
どうすれば思い通りの描画結果が得られるのかが分からなくなってしまいました
コードがごちゃごちゃしているせいなのかもしれませんが……
誰かよろしくお願いします!
↓今の実行状況ですが正方形に収まらず右にはみ出してしまっています…… ちなみに、なぜ適当に描画してしまって黒で塗りつぶしてしまわないかというと
ぞれだと後々使いまわして、重ね合わせて描画するときに変な感じになるからです
環境です
レトロなのは仕様ですwそっちの方が使いやすいので
Windows XP Home SP3
VC++ Express 2005
コードです 定義部分と実行コード部分のみです
効率重視のため、グローバル変数に値を代入して定められた順番に描画していくという方式をとっています
//draw.cpp一部//-----------------------------------------------------------------------------------------
void setdt(int n,int x1,int y1,int x2,int y2,int x3,int y3,DWORD color,int fillflag,int z)
{
dt[n].x1 = x1;
dt[n].y1 = y1;
dt[n].x2 = x2;
dt[n].y2 = y2;
dt[n].x3 = x3;
dt[n].y3 = y3;
dt[n].color = color;
dt[n].fillflag = fillflag;
dt[n].dbase.mode = 0;
dt[n].dbase.useflag = TRUE;
dt[n].dbase.z = z;
}//DrawTriangleへ代入するためのグローバル変数です
//-------------------------------------------------------------------------------------------------------
//define.h一部//-------------------------------------------------------------------------------------
#define IWIDTH 854
#define IHEIGHT 480
#define CE_X IWIDTH/2.0
#define CE_Y IHEIGHT/2.0
//-------------------------------------------------------------------------------------------------------
//main.cpp一部(main.cppに統合していますが、その内ほかのファイルに移す予定です)//-----
void alert()//問題の関数
{
//DrawTriangle((CE_X)-140,(CE_Y)-46,(CE_X)-130,(CE_Y)-46,(CE_X)-49,(CE_Y)+45,GetColor(210,210,250),1);
//DrawTriangle((CE_X)-130,(CE_Y)-46,(CE_X)-49,(CE_Y)+45,(CE_X)-39,(CE_Y)+45,GetColor(210,210,250),1);
setdb(0,(CE_X)-150,(CE_Y)-50,(CE_X)+150,(CE_Y)-49,GetColor(210,210,250),1,1);
setdb(1,(CE_X)-150,(CE_Y)+50,(CE_X)+150,(CE_Y)+49,GetColor(210,210,250),1,2);
int xt = 0;
int yt = 0;
int xtt = 0;
int ytt = 0;
int dx = 0;
int dy = 0;
int dx2 = 0;
int dy2 = 0;
int dx3 = 0;
int dy3 = 0;
int j = 0;
int k = 0;
for(int i = 0;i<20;i++)
{
xt = (CE_X) - 150;
j += 10;
xtt = xt + j - 100;
if(xtt < xt)
{
dx = xt;
}else{
if(xtt > xt + 80)
{
dx = xt + 80;
}else{
dx = xtt;
}
};
if(xtt < xt)
{
dy = (CE_Y) - 45 + j ;
}else{
dy = (CE_Y) - 45;
}
if(xtt < xt)
{
dx2 = xt;
}else{
if(xtt > xt + 80)
{
dx2 = xt + 80;
}else{
dx2 = xtt + 6;
}
};
if(xtt < xt)
{
dy2 = (CE_Y) - 45 + j - 6;
}else{
dy2 = (CE_Y) - 45;
}
if(xtt < xt)
{
dx3 = xt + (90 - j);
}else{
if(xtt > xt + 80)
{
dx3 = xt + 80;
}else{
dx3 = xtt + 90;
}
};
if(xtt < xt)
{
dy3 = (CE_Y) + 45;
}else{
if(xtt > xt + 80)
{
dy3 = (CE_Y) + 45 + 200 - j;
}else{
dy3 = (CE_Y) + 45;
}
}
setdt(
k,
dx,
dy,
dx2,
dy2,
dx3,//解決できていない変数
dy3,//解決できていない変数その2
GetColor(210,210,250),
1,
3);
k++;
setdt(
k,
dx2,
dy2,
dx3,
dy3,
dx3 + 6,
dy3,
GetColor(210,210,250),
1,
3);
k++;
}
}
宜しければどうかよろしくお願いいたします
[hr]
追記です
setdt(...)はDrawTriangleに対するグローバル変数をセットする関数です(分かりにくくてごめんなさい……)