ページ 1 / 1
龍神録作り方アレンジについて
Posted: 2008年10月11日(土) 01:59
by ジャーニー
はじめまして
今龍神録の作り方を見てまずは打ち込みながら大体同じようなプログラムを作っていっている段階です
ですが最近利用規約を見たところ酷似したプログラムの公開禁止と書いていました。まあ当たり前ですけどね
そのため公開する気はありませんが今後のため完成後プログラムを自分流にアレンジしていこうと思います
ですが自分の中ではすでにかなり完成されたプログラムであるので今のところ短い関数をインライン展開にしたりするぐらいしか思いつきません
アレンジするならばここなんかいいというところはありませんか?
ちなみにC++は今勉強中なので多少はわかります
お願いします
Re:龍神録作り方アレンジについて
Posted: 2008年10月11日(土) 03:50
by Justy
>アレンジするならばここなんかいいというところはありませんか?
>ちなみにC++は今勉強中なので多少はわかります
>今のところ短い関数をインライン展開にしたりするぐらいしか思いつきません
こういう系のアレンジがいいのですか?
ということであれば、そうですね。
・ C++への本格的な移行・・・各種オブジェクトのクラス化など
この際全面的に C++化してみてはどうでしょうか。
今ある構造体にコンストラクタを付けたり、メンバ変数を private化、
メンバ関数を追加してメンバ変数の処理を行うようにしたりとか。
・ 静的変数の削減
本当にその変数はグローバル変数である必要があるのかどうか、
或いはアプリケーションの最初から最後までずっとメモリに保持しておく必要があるのかどうか
を検討し、静的変数の削減を検討してみてはどうでしょうか。
・ 共通化・簡潔化
同じような処理が複数回現れているようでしたら、関数化するなり、クラス化するなり
1つにまとめていく、というのはどうでしょうか。
メンバ変数へのアクセも同様で、構造体内部への深いアクセスが続くようなら一時変数に
まとめて一行を短くしてみるとか。
多分これくらいやるだけで、かなりジャーニーさんオリジナルなコードになるはずですよ。
Re:龍神録作り方アレンジについて
Posted: 2008年10月11日(土) 09:35
by 管理人
龍神録では、構造体の型が見てすぐわかるように似たような構造体もことあるごとに
全て個別に用意してあります。
例えば
typedef struct{
int flag,cnt,knd;
double x,y;
}A_t;
typedef struct{
int flag,cnt;
double x,y;
}B_t;
これらはほとんど同じなので、なるべく共通利用できる構造体の形にしてみてはどうでしょう。
また、配列は全て動的確保していません。敵、弾幕、弾・・。
これからリプレイ機能等を作りますが、これも最初からガッポリ大量に領域確保します。
これらを効率よく領域確保してやるといいかもしれません。
しかし弾幕の弾データについては、画面から消える・登録するごとに配列を確保、解放しては
余計に遅くなってしまう可能性があるので、その辺は単なる動的配列や線形リストに留まらず
必要になったら現在の1.5倍の領域を確保するなど、
工夫する必要があるかもしれません。
後、stageやcountなど、単体で存在する変数が存在しますが、
これらの変数を構造体に纏めてやるのもいいと思います。
変数が単体でグローバル変数として存在すると初期化ミスがあったりするので、
構造体でまとめてやったほうがいいかもしれません。
Re:龍神録作り方アレンジについて
Posted: 2008年10月11日(土) 13:50
by ジャーニー
回答ありがとうございます
>Justyさん
C++への移行は考えていましたが今はまだクラスやリストを覚えたばかりです
ですが覚え次第移行を考えてみたいと思います
>管理人さん
enemyやenemy_orderがそれにあたりそうですね
とりあえずは1面実装までを区切りに作っていく予定です
ですので1面完成後領域を動的に確保していくようなつくりにしていきたいと思います
ありがとうございます