2次元配列の要素へのアクセスの順序
Posted: 2011年7月19日(火) 15:31
今度はRPGツクールみたいな、背景をつくろうと思ってますが
2次元配列へのアクセスの順序が思ったとおりにいかず、私の理解が間違っていると思うので
どこらへんが間違っているか確認したく、書き込みさせてもらいます
下のCStage::Init( int stage ) で配列を初期化して
CStage::Draw() でそれを描画するのです
予想しているのは、
0,0,0,0,0
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
となると思っているのですが
実行すると
0,1,1,1,1
0,1,1,1,1
0,1,1,1,1
0,1,1,1,1
0,1,1,1,1
と90°違って描画されます
これは予想したとおりに描画するにはどこを変更すればいいのでしょうか?
2次元配列へのアクセスの順序が思ったとおりにいかず、私の理解が間違っていると思うので
どこらへんが間違っているか確認したく、書き込みさせてもらいます
下のCStage::Init( int stage ) で配列を初期化して
CStage::Draw() でそれを描画するのです
int CStage::Draw()
{
int x, y;
for( y=0; y<def_height; y++ )
{
for( x=0; x<def_widht; x++ )
{
DrawBox( x*32, y*32, (x+1)*32, (y+1)*32, gColor[m_iArray[x][y]], TRUE );
DrawFormatString( x*32, y*32, GetColor(128,128,0), "%d", m_iArray[x][y] );
}
}
return index_stage;
}
void CStage::Init( int stage )
{
int x, y;
{
int stok[def_height][def_widht] = {
{ 0, 0, 0, 0, 0 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
};
for( x=0; x<def_height; x++ )
{
for( y=0; y<def_widht; y++ )
{
m_iArray[x][y] = stok[x][y];
}
}
}
}
0,0,0,0,0
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
となると思っているのですが
実行すると
0,1,1,1,1
0,1,1,1,1
0,1,1,1,1
0,1,1,1,1
0,1,1,1,1
と90°違って描画されます
これは予想したとおりに描画するにはどこを変更すればいいのでしょうか?