#1
by プログラマ見習い » 4年前
横スクロールアクションゲームを作っています。
現在、二次元配列で、敵や壁などを含めたマップデータの初期値を作成した後、画像を描画する所までは出来ました。
しかし、敵画像などの、動かしたい画像を動かす事が出来なくて行き詰っております。
何らかの方法でマップデータを取り出す必要があるとまでは理解しているのですが、その方法が分からない状態です。
コード:
char map01no01[15][20]={
/*00*/{'0','0','0','0','0','1','1','1','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*01*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*02*/{'0','0','0','0','0','0','0','0','A','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*03*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*04*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','A','0','0','0','0','0','0','0'},
/*05*/{'0','0','0','0','0','A','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*06*/{'0','0','0','0','0','0','0','0','A','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*07*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','A','0','0','0','0','0'},
/*08*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*09*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*10*/{'0','0','0','0','0','A','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*11*/{'0','0','0','0','0','0','0','0','A','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*12*/{'0','0','0','0','0','0','0','0','1','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*13*/{'0','0','0','0','0','0','0','1','1','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*14*/{'1','1','1','1','1','1','1','1','1','1'/**/,'1','1','1','1','1','1','1','1','1','1'}
};
//●マップの描画
void DrawMap(){
for(int y=0;y<15;y++){
for(int x=0;x<20;x++){
int i=map01no01[y][x+1];//各キャラの初期位置を取得する。
DrawGraph(x*32,y*32,mapdeta[i].ghandle,TRUE); //画像を描画
//マップデータの初期値を抜き出す必要がある。
map01no01[y][x+1]=0;
}
}
}
}
データを抜き出した後、「map01no01[y][x+1]=0;」で初期値を消す必要があると入門書で読んだのですが、その抜き出す方法が分からないので、「map01no01[y][x+1]=0;」を入力すると、当然、せっかく描画した画像が消えてしまう状態です。
上記の2次元配列でマップデータの画像を描画した後、動かしたい画像を動かす方法が、どうしてもわからないので、手がかりを教えていただけないでしょうか。
横スクロールアクションゲームを作っています。
現在、二次元配列で、敵や壁などを含めたマップデータの初期値を作成した後、画像を描画する所までは出来ました。
しかし、敵画像などの、動かしたい画像を動かす事が出来なくて行き詰っております。
何らかの方法でマップデータを取り出す必要があるとまでは理解しているのですが、その方法が分からない状態です。
[code]
char map01no01[15][20]={
/*00*/{'0','0','0','0','0','1','1','1','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*01*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*02*/{'0','0','0','0','0','0','0','0','A','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*03*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*04*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','A','0','0','0','0','0','0','0'},
/*05*/{'0','0','0','0','0','A','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*06*/{'0','0','0','0','0','0','0','0','A','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*07*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','A','0','0','0','0','0'},
/*08*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*09*/{'0','0','0','0','0','0','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*10*/{'0','0','0','0','0','A','0','0','0','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*11*/{'0','0','0','0','0','0','0','0','A','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*12*/{'0','0','0','0','0','0','0','0','1','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*13*/{'0','0','0','0','0','0','0','1','1','0'/**/,'0','0','0','0','0','0','0','0','0','0'},
/*14*/{'1','1','1','1','1','1','1','1','1','1'/**/,'1','1','1','1','1','1','1','1','1','1'}
};
//●マップの描画
void DrawMap(){
for(int y=0;y<15;y++){
for(int x=0;x<20;x++){
int i=map01no01[y][x+1];//各キャラの初期位置を取得する。
DrawGraph(x*32,y*32,mapdeta[i].ghandle,TRUE); //画像を描画
//マップデータの初期値を抜き出す必要がある。
map01no01[y][x+1]=0;
}
}
}
}
[/code]
データを抜き出した後、「map01no01[y][x+1]=0;」で初期値を消す必要があると入門書で読んだのですが、その抜き出す方法が分からないので、「map01no01[y][x+1]=0;」を入力すると、当然、せっかく描画した画像が消えてしまう状態です。
上記の2次元配列でマップデータの画像を描画した後、動かしたい画像を動かす方法が、どうしてもわからないので、手がかりを教えていただけないでしょうか。