マップに情報を持たせる方法を教えてください
Posted: 2013年2月10日(日) 17:39
SRPGを作るために勉強しています。
今までマップはint型の構造体を用意してこのようにしていました
4,5,6などの数字に対応したマップチップを用意して表示させています。
また0以外の所はキャラクターが移動をできないようにしていました。
しかし、これだけではマップタイルの指定と、キャラクタが
通れるのか通れないのか位の情報しか持たせられないため
SRPGに必要な移動コストなどの要素を持たせたくて、構造体で記述し
その構造体を、配列にして情報を持たせてみました。
しかし初期化方法で悩んでいます。for文で回せば一括初期化は可能なのですが
int型の配列を用いているより、マップチップの配置が難しくて困っています
int型だと対応する数字を打ち込めばマップチップの配置ができたのですが
構造体の配列になったとたん、視覚的に配置ができなくなってしまいました。
何か良い方法はありませんか?
今までマップはint型の構造体を用意してこのようにしていました
4,5,6などの数字に対応したマップチップを用意して表示させています。
また0以外の所はキャラクターが移動をできないようにしていました。
//4,5,6,7,8,9,10,11がキャラクタの移動を制限するための谷
int Block[4][25] ={4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,
7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,
7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,
7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,
10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9};
通れるのか通れないのか位の情報しか持たせられないため
SRPGに必要な移動コストなどの要素を持たせたくて、構造体で記述し
その構造体を、配列にして情報を持たせてみました。
しかし初期化方法で悩んでいます。for文で回せば一括初期化は可能なのですが
int型の配列を用いているより、マップチップの配置が難しくて困っています
int型だと対応する数字を打ち込めばマップチップの配置ができたのですが
構造体の配列になったとたん、視覚的に配置ができなくなってしまいました。
何か良い方法はありませんか?
typedef struct mapdata{
int nMaptipNum;//マップチップナンバー
int nMoveCost;//そのマスの移動コスト
bool bCharFlag;//敵キャラ及び味方キャラがいるかどうか
int nEsqapeCost;//マップ特有の回避率
}mapdata;
int _tmain(int argc, _TCHAR* argv[])
{
int x;
int y;
//ゼロで初期化
mapdata map[25][25] = {0};
//マップデータの初期化、はてマップチップの指定はどの様に・・・map[4][5] = 3とかだと日が暮れる・・・?
for(x = 0;x < 25;++x){
for(y = 0;y < 25; ++y){
map[x][y].nMaptipNum = 0;
}
}
return 0;
}