製作環境: C言語*DXライブラリ Microsoft Visual Studio Express 2012
現在、ぽちぽちとRPG製作を進めています。プログラミング初心者です。
タイトルの通り、マップの読み込みについて質問があります。
非常に大きなダンジョンのマップAがあります。
(ドラゴンクエスト3or4、のフィールド全体のマップ、くらいだと思ってください。大げさですけど)
このマップA、ダンジョンなものですから普段使用しません。
とは言ってもその場面が来れば何度も使用することになります。
【A案】
あまりに大きいので、最初、いくつかに分割して読み込ませたらどうかなーと思ったのです。
0, 1, 2, 3
4, 5, 6, 7
8, 9,10.11
こんな感じに分けた上で、0に主人公がいた場合、0,1,4,5 辺りのみ読み込ませます。
このマップの表示には静的メモリを取りません。
ようするに60FPSなら、毎秒60回、主人公の周りのマップを読み込んでいます。
【B案】
一秒間に60回読み込むとか、ありえないでしょー。どう考えてもメモリ使いすぎでしょー。
と思ったので、次は最初から全て静的メモリにマップを確保しておいたらどうだろう。と思ったのです。
でもこれだと、ダンジョンのマップなものですから、全部確保したら使わない時にはメモリ無駄にしちゃうよな。と思ったのです。
【C案】
動的メモリとかいうものを使う、まだ学んでない関数があるらしい。
と、A,B,Cの三つを考えたのですが、実際、どれがどのくらいメモリを消費するのか分からないのです。
実際にC言語で巨大なマップを作ろう! と考えたときに、プログラミング初心者の私がチャレンジするのはどれが妥当でしょうか?
もしくは別の考え方でこういうのがあるよ。と言ったものがありましたら教えてください。
よろしくお願いいたします。
ただし、巨大なマップ自体を作らない。と言った回答はなしでお願いします。
No.2
- 回答日時:
DXライブラリそのものに、画像読み込み関数が用意されているため、
上記を利用する限り、静的メモリや動的メモリの区別を行う必要はありませんよ。
>と、A,B,Cの三つを考えたのですが、実際、どれがどのくらいメモリを消費するのか分からないのです。
>実際にC言語で巨大なマップを作ろう! と考えたときに、プログラミング初心者の私がチャレンジするのはどれが妥当でしょうか?
メモリ不足で怒られる(エラー発生する)までは、
贅沢にメモリを使用する方法がプログラム記述を単純化できるので楽だと思います。
小細工を考えるのは、性能問題(動作速度やメモリ消費量)が生じからで良いのです!(富豪プログラミング)
富豪的プログラミング
http://www.mii.kurume-u.ac.jp/~smoto/lab/Diary/0 …
但し、無駄な処理はしないように…
http://satoshi.blogs.com/life/2009/11/rails_prog …
何か物凄い気分が楽になった気がします。
ポインタで処理が軽くなるよ。と言われても、どれだけ軽くなるのかと言う事が全く分かっていませんので、砂粒一つのような小さい事なのか、それとも岩のようなどけなければいけない物なのか、さっぱりだったものですから。
あまり気にせずやってみようと思います。
ありがとうございました。
No.1ベストアンサー
- 回答日時:
初心者が最初の設計で最後までRPGを完成できると思えないので、行き当たりばったりもがいたほうがいいですけどね。
何度か作り直すハメになると思います。でも仕方ないんです。始めてなんですから。まぁ、画像のほうがデータ量を消費しますので画像の持ち方次第です。ABC案がマップの配置データの話としたら次のような感じでしょうか。
【A案】
読み込みは遅いので基本的に却下です。
【B案】
そもそも手打ちでマップデータ用意するんでしょうか。
【C案】
一般的には動的に割り当てたメモリに読み込みます。
ただ、大した容量取りませんよ。
単に可変サイズの時、動的の方が便利だからです。
A案ダメなんですね、頭捻ったつもりが結局浅知恵と言う。
B案はツクールみたいなマップエディタ作ってみようかな、と思ってました。これも手打ちになるのかな。
それを利用して分割したらA案いけるんじゃね!
→ダメでした
C案が一般的なんですね。可変サイズとか言われるとランダムでマップ生成とかできそうで夢が広がります。
可変サイズとか意味が全然分かっていませんけどね。
ともあれ、丁寧に教えてくださってありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Google Maps Google マップの特定の場所を指定した情報を保存し、他の人に送る方法を教えて下さい。 2 2022/05/23 21:08
- CPU・メモリ・マザーボード ゲーミングpcのファンのことについて教えて欲しいです。 6 2023/03/05 07:44
- モニター・ディスプレイ PCゲームで急にFPSが落ちました 2 2022/11/18 00:42
- その他(ゲーム) みなさんはシミュレーションRPGにどういうものを求めますか? 昔に比べたら作品数がどんどん先細っちゃ 1 2022/03/28 14:55
- その他(スマホアプリ・スマホゲーム) Yahooマップについて使い方 前までGoogleマップを使っていたのですが、電車移動はYahooマ 1 2022/11/05 11:06
- docomo(ドコモ) るるぶ観光マップ 1 2023/07/29 10:42
- その他(コンピューター・テクノロジー) デジタル化推進でうちの会社では、ペーパーレス化が進んでいます。 そこで、質問です。 会社では、検査課 3 2023/06/11 00:17
- 地図・道路 通勤で2km以上(最短距離)でなら専用駐車場が借りれるのですが 通勤経路で、勤務地から家まで測ると 2 2022/04/08 23:01
- Google Maps すみません、さっき同じような質問をしたのですが、Googleマップの口コミで悪いコメントを書いたとこ 2 2023/04/25 19:23
- アルバイト・パート アルバイト先の労働環境について、Googleマップの口コミに書くことはトラブルに繋がるかどうかについ 1 2023/05/30 20:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C言語で、メモリを解放しないで...
-
sil_rew_memのメモリアクセスに...
-
[ちょっと息抜き]メモリを解放 ...
-
VB.netでUSBメモリの固有I...
-
メモリ不足
-
C#で別クラスインスタンスのメ...
-
malloc関数の使い終わった後の...
-
C言語における再帰呼び出しの...
-
メモリアロケーション異常の発...
-
メモリの消費量について
-
メモリのセグメント違反の解決...
-
仮想メモリの増やし方
-
ReadEventLogについて
-
FindFirstFile ハンドル開放
-
<jsp:include>の属性、flushに...
-
エクセル キャッシュメモリー...
-
メモリの解放について VB6 VBA
-
C言語 昇順・降順 ソート
-
ちなみに、for (i = 0; str[i] ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
「ヒープサイズの設定」て何?
-
C言語における再帰呼び出しの...
-
エクセルVBA 大容量CSVファイル...
-
動的メモリとexit(C言語)
-
エクセルのメモリ使用状況/Appl...
-
メモリが不足しています(VBA)
-
ファイルマッピング関数で失敗
-
大容量のメモリ確保をスワップ...
-
メモリのセグメント違反の解決...
-
EXCEL-VBAにてADOのレコードセ...
-
メモリ不足
-
エクセル キャッシュメモリー...
-
【C言語】再帰が時間がかかる...
-
C#のOutOfMemoryException発生...
-
closeとメモリの開放について
-
バッチファイルでの実行EXEのメ...
-
メモリの解放について VB6 VBA
-
「memcpy」と「strcpy」について
おすすめ情報