マップ(ひし形)を並べるだけの基本的なことが描いてあるところが少なく(キャラの描画とかでてきてしまう)、
そして参考になるサイトがあったものの、思っていた並べ方と少し違ったのでここで質問させていただくことにしました。
まず、あるサイトを参考にさせてもらって一応作ることができたのですが、その並び方が、クォータービューで並べる順番でいうと、
,,01,11,21,31,41,51,61,71,81,91
02,12,22,32,42,52,62,72,82,92,,
,,03,13,23,33,43,53,63,73,83,93
04,14,24,34,44,54,64,74,84,94,,
,,05,15,25,35,45,55,65,75,85,95
06,16,26,36,46,56,66,76,86,96,,
,,07,17,27,37,47,57,67,77,87,97
08,18,28,38,48,58,68,78,88,98,,
,09,19,29,39,49,59,69,79,89,99,
10,20,30,40,50,60,70,80,90,100
こんなかんじで、それのコードが
int getOffsetX(int x,int y){
int startx=12,stepx=48,offsetx=0;
if(y==0 || y%2==0)
offsetx=24;
return (startx+offsetx)+(x*stepx);
}
int getOffsetY(int y){
int starty=0,stepy=12,offsety=0;
return (starty+offsety)+(y*stepy);
}
void DrawMap()
{
int xx,yy;
int x=20,y=20;
for(yy=0;yy<20;++yy)
{
for(xx=0;xx<20;++xx)
{
DrawGraph(getOffsetX(xx,yy)-CameraX,getOffsetY(yy)-CameraY,chip[(Map1[yy][xx])-1],TRUE); //マップ描画
}
}
DrawGraph(PlayerViewX,PlayerViewY,chip[1],TRUE);//プレイヤー
}
こんなかんじになっているのですが、これでも良いんですが、
私が作りたかったのはマップの端がキザギザにならない、チェスのボードのような
,,,,,,,,,,,,,,,,01,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,11,02,,,,,,,,,,,,,,,
,,,,,,,,,,,,21,12,03,,,,,,,,,,,,,
,,,,,,,,,,31,22,13,04,,,,,,,,,,,
,,,,,,,,41,32,23,14,05,,,,,,,,,
,,,,,,51,42,33,24,15,06,,,,,,,,
,,,,61,52,43,34,25,16,07,,,,,,
,,71,62,53,44,35,26,17,08,,,,
81,72,63,54,45,36,27,18,09,,
,,82,73,64,55,46,37,28,19,10
,,,,83,74,65,56,47,38,29,20,,
,,,,,,84,75,66,57,48,39,30,,,,
,,,,,,,,85,76,67,58,49,40,,,,,
,,,,,,,,,,86,77,68,59,50,,,,,,,
,,,,,,,,,,,,87,78,69,60,,,,,,,,
,,,,,,,,,,,,,,88,79,70,,,,,,,,,,
,,,,,,,,,,,,,,,,89,80,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,90,,,,,,,,,,,,,
こんなかんじの全体でひし形ひなるような並び方を求めているんです。
結構違うと思うのですが、どう変えればこう並べることができるんでしょうか…
最初の描画位置から右下にどんどん並べて行って、一行分並べたら最初の描画位置の左下からまた右下へ並べる感じです…
これをどうプログラムで組んでいけばいいか教えてください…