マップエディターQuoyle08の.map読み込み
Posted: 2009年10月13日(火) 18:33
どうもお世話になっていますm(_ _)m
現在DxLibで、戦術級シュミレーションゲームを制作中です。
マップ制作にQuoyle08を使用させてもらっているのですが、出てくるマップデータファイルの読み込みに戸惑っています。
.map形式のファイルを使い、二次元配列に数値を読み込んでいくのですが、ちゃんと読み込むことができません。
マップチップは4枚なのに二次元配列に読み込んで、確認のためにDrawFormatString関数で出力すると771や-1などおかしい数値が入ってしまいます。
http://inu.harisen.jp/index.html
のサイト様を参考にさせてもらっているのですが、この関数では無理でしょうか?
添付されているファイルに問題があるのでしょうか?
Quoyle08でデータを生成するときに間違っているのでしょうか?
現在DxLibで、戦術級シュミレーションゲームを制作中です。
マップ制作にQuoyle08を使用させてもらっているのですが、出てくるマップデータファイルの読み込みに戸惑っています。
.map形式のファイルを使い、二次元配列に数値を読み込んでいくのですが、ちゃんと読み込むことができません。
マップチップは4枚なのに二次元配列に読み込んで、確認のためにDrawFormatString関数で出力すると771や-1などおかしい数値が入ってしまいます。
http://inu.harisen.jp/index.html
のサイト様を参考にさせてもらっているのですが、この関数では無理でしょうか?
添付されているファイルに問題があるのでしょうか?
Quoyle08でデータを生成するときに間違っているのでしょうか?
--------------------------------構造体Mapの中身 struct Map{ int chip[CHIP]; //チップ画像のハンドル int chip_num; //読み込んだチップの枚数 int data[LYE[/url][27][27]; //マップデータ レイヤーn枚分 64x64 int data_x_num; //マップデータのチップ枚数X int data_y_num; //マップデータのチップ枚数Y }; -------------------------------- int LoadMapData(const char *name) { int fh = 0; int buf[2] = {NULL}; fh=FileRead_open(name); for(int i=0;i<2;i++)FileRead_read(&buf, sizeof(BYTE), fh); map.data_x_num=((buf[1] & 0xff) << 8) | (buf[0] & 0xff); for(int k=0;k<2;k++)FileRead_read(&buf[k], sizeof(BYTE), fh); map.data_y_num=((buf[1] & 0xff) << 8) | (buf[0] & 0xff); FileRead_seek(fh,16,SEEK_SET); for(int q=0;q<LYER;q++){ for(int y=0;y<map.data_y_num;y++){ for(int x=0;x<map.data_x_num;x++){ for(int m=0;m<2;m++){ buf[m]=FileRead_getc(fh); } map.data[q][y][x]=buf[0]|(buf[1]<<8); } } } FileRead_close(fh); return 0; }