初めまして、自分はC++を勉強しようと思い、クラスについてチマチマと手を出しています。
ゲームプログラミング設計において、モジュール単位での処理は分かるのですが、C++でそれを実現しようとすれば、
オブジェクトのインスタンス化は何処で行えばよいのでしょうか?
一応、ゲーム作成を目指していますので、ゲームループの外・・・WinMain関数の直後で宣言して、ポインタ引数でクラスのアドレスを渡し、
その先の関数でクラスのメソッド扱うのか、それともヘッダーでグローバルとしてインスタンス化し、mainでは実体として・・・他ファイルからはexternで呼び込むような方法なのでしょうか?
グローバルのインスタンス制御に関しては、「龍神録プログラミングの館」様で説明されていた「プリプロセッサ」を使用した制御を参考にさせてもらっています。
#ifndef GV_INSTANCE
#define GV
#else
#define GV extern
#endif
プレイヤーの情報(座標やHP等)を保持したまま、インスタンス化したオブジェクトを、どう扱えばいいのか分からなくて・・・
分かりにくい説明でスミマセン・・・。お暇であればご教授の方、是非お願いいたします。m(_ _;)m
C++でのゲームプログラミング設計について
Re: C++でのゲームプログラミング設計について
「龍神録プログラミングの館」のような書き方はオブジェクト指向ではなく、あまりよい書き方ではありません。
c++でclassを使うのであれば全く別の方法をとるべきです。
僕も独学ですので、あまり自信はありませんが、 みたいな感じで書けばよろしいかと思います。
c++でclassを使うのであれば全く別の方法をとるべきです。
僕も独学ですので、あまり自信はありませんが、 みたいな感じで書けばよろしいかと思います。
Re: C++でのゲームプログラミング設計について
ご返信ありがとうございます。
やはり、グローバルではなくポインタでの渡し合いになるのですね。
引数が長くなるのを避けために、構造体もしくはもう一つのclassでclassをまとめるといった手法はOKなんでしょうか?
もちろん、保持しなくてもいいメンバ変数を持つクラスは、ローカル関数のスコープ内でインスタンス化して使用します。
敵や味方等の永続的に使用するようなパラメーターを持ったclassは、やはりWinMain直下で宣言し、あとはポインタでの引き渡しで管理するのでしょうか?
やはり、グローバルではなくポインタでの渡し合いになるのですね。
引数が長くなるのを避けために、構造体もしくはもう一つのclassでclassをまとめるといった手法はOKなんでしょうか?
もちろん、保持しなくてもいいメンバ変数を持つクラスは、ローカル関数のスコープ内でインスタンス化して使用します。
敵や味方等の永続的に使用するようなパラメーターを持ったclassは、やはりWinMain直下で宣言し、あとはポインタでの引き渡しで管理するのでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: C++でのゲームプログラミング設計について
龍神録の下の方に、四聖龍神録plus次回作のソースコード(C++)をDixq(管理人)さんが公開されていますので参考にされてはどうでしょうか?
http://dixq.net/rp/
龍神録と違い完全にオブジェクト指向で書かれていますので答えの一つにはなると思います。
[追記]
グローバル参照の害は誰(どの関数)が更新しているのか分かりづらいことです。
何でもかんでも引き渡してやるとグローバル変数と変わらなくなってします。
http://dixq.net/rp/
龍神録と違い完全にオブジェクト指向で書かれていますので答えの一つにはなると思います。
[追記]
なんでも引数の構造体にまとめるのはグローバル変数と変わらないので避けたほうが良いでしょう。やはり、グローバルではなくポインタでの渡し合いになるのですね。
引数が長くなるのを避けために、構造体もしくはもう一つのclassでclassをまとめるといった手法はOKなんでしょうか?
グローバル参照の害は誰(どの関数)が更新しているのか分かりづらいことです。
何でもかんでも引き渡してやるとグローバル変数と変わらなくなってします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: C++でのゲームプログラミング設計について
C++でのオープンソースがありましたか・・・何とか理解できるくらいの知識を身に付けて拝見させていただきます。
また一つ知識が深まりました。ありがとうございます。m(_ _)m
また一つ知識が深まりました。ありがとうございます。m(_ _)m