アプリ版:「スタンプのみでお礼する」機能のリリースについて

製作環境: 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言語で巨大なマップを作ろう! と考えたときに、プログラミング初心者の私がチャレンジするのはどれが妥当でしょうか?
もしくは別の考え方でこういうのがあるよ。と言ったものがありましたら教えてください。
よろしくお願いいたします。

ただし、巨大なマップ自体を作らない。と言った回答はなしでお願いします。

A 回答 (2件)

初心者が最初の設計で最後までRPGを完成できると思えないので、行き当たりばったりもがいたほうがいいですけどね。

何度か作り直すハメになると思います。でも仕方ないんです。始めてなんですから。

まぁ、画像のほうがデータ量を消費しますので画像の持ち方次第です。ABC案がマップの配置データの話としたら次のような感じでしょうか。

【A案】
読み込みは遅いので基本的に却下です。

【B案】
そもそも手打ちでマップデータ用意するんでしょうか。

【C案】
一般的には動的に割り当てたメモリに読み込みます。
ただ、大した容量取りませんよ。
単に可変サイズの時、動的の方が便利だからです。
    • good
    • 0
この回答へのお礼

A案ダメなんですね、頭捻ったつもりが結局浅知恵と言う。
B案はツクールみたいなマップエディタ作ってみようかな、と思ってました。これも手打ちになるのかな。
それを利用して分割したらA案いけるんじゃね!
→ダメでした

C案が一般的なんですね。可変サイズとか言われるとランダムでマップ生成とかできそうで夢が広がります。
可変サイズとか意味が全然分かっていませんけどね。

ともあれ、丁寧に教えてくださってありがとうございました。

お礼日時:2013/09/16 00:30

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 …
    • good
    • 0
この回答へのお礼

何か物凄い気分が楽になった気がします。

ポインタで処理が軽くなるよ。と言われても、どれだけ軽くなるのかと言う事が全く分かっていませんので、砂粒一つのような小さい事なのか、それとも岩のようなどけなければいけない物なのか、さっぱりだったものですから。

あまり気にせずやってみようと思います。
ありがとうございました。

お礼日時:2013/09/16 00:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!