ページ 11

2次元のマップで

Posted: 2012年10月30日(火) 23:27
by Dys9
全くの初心者です。

DXライブラリを使って簡単なRPGのような物を作っています。
12×12のマップで、初代ゼルダの伝説のような、あるいは昔流行ったWWAというwebで遊べるRPGのような方式で、
画面端まで行って、さらに画面外の方向にキーを押すと画面が切り替わる方式で現在9画面分(12×12×9)分あります。
こちらの(http://dixq.net/g/26.html)方法で、壁を作ったのですが、

配列は初期化が初めにしかできないとのことで、現在
char wall[9][12][12] = {
{
{ 1,0,0,0,0,0,0,0,0,2,2,2 },
{ 1,0,0,0,0,0,0,0,0,2,2,2 },
{ 1,0,0,0,0,0,0,0,0,2,2,2 },
{ 1,0,0,0,0,0,0,0,0,2,2,2 },
{ 1,0,0,0,0,0,0,0,0,2,2,2 },
{ 1,0,0,0,0,0,0,0,0,0,0,0 },
{ 1,0,0,0,0,0,0,0,0,0,0,0 },
{ 1,0,0,0,0,0,0,0,0,0,0,0 },
{ 1,0,0,0,0,0,0,0,0,0,0,0 },
{ 1,0,0,0,0,0,0,0,0,0,0,0 },
{ 1,0,0,0,0,0,0,0,0,0,0,0 },
{ 1,1,1,1,1,1,1,1,1,1,1,1 }
},{
{ 2,2,2,2,2,2,2,2,2,2,2,0 },
・・・略・・・
};
という、12×12が9個も続くような形になっています。(0が道、1が壁、2は敵が出現する範囲としました)

現在は9画面なのでいいのですが、将来マップ数を増やしたときに、結構なメモリを食うのでは?と少し心配です。
この程度のメモリ消費ならば特に問題はないのでしょうか?
また、もし良い代替案がありましたらご教授頂けないでしょうか。

Re: 2次元のマップで

Posted: 2012年10月30日(火) 23:52
by nil
メモリの消費自体は大したことがないと思います。
sizeof(int)*12*12 = 576[byte]
画像一枚のほうが容量が明らかに大きいですしね。

ですが、開発の効率などを鑑みるに配列を使うのは少し面倒です。
なので、マップエディタを使うことをおすすめします。

Re: 2次元のマップで

Posted: 2012年10月31日(水) 00:09
by softya(ソフト屋)
メモリは心配らないですが、画像パターンがシンプルならテキストファイルという手もあります。
マップに0,1,2以外が必要ならマップエディタを考えてみたほうが良いでしょう。
「Vector:ダウンロード Windows > ゲーム > ゲーム用ユーティリティ > ゲーム開発 > マップエディタ」
http://www.vector.co.jp/vpack/filearea/ ... /make/map/

Re: 2次元のマップで

Posted: 2012年10月31日(水) 14:29
by Dys9
ご回答ありがとうございます!

早速Platinumというマップツールを用いて、とりあえず現在と同じマップを作ってみましたが、出力したfmfファイルかcsvファイルをどのようにC++で読み込めば良いのか分かりません・・・

どのように使用するのか分かりやすい解説、または解説のあるページを教えて頂けますでしょうか?

Re: 2次元のマップで

Posted: 2012年10月31日(水) 15:07
by softya(ソフト屋)
Dys9 さんが書きました:ご回答ありがとうございます!

早速Platinumというマップツールを用いて、とりあえず現在と同じマップを作ってみましたが、出力したfmfファイルかcsvファイルをどのようにC++で読み込めば良いのか分かりません・・・

どのように使用するのか分かりやすい解説、または解説のあるページを教えて頂けますでしょうか?
下に検索があるのでPlatinumで検索して過去ログを見てもらうとか、私の書いたRPG作成講座があるのですが参考にしてください。Platinumを使っています。
「マイ 日記 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/blog.php?u=114&sd=a&c=2

Re: 2次元のマップで

Posted: 2012年10月31日(水) 23:25
by Dys9
御親切にありがとうございます。
お陰様で無事読み込むことに成功しました。

検索窓に気がつきませんでした・・・