XNA で C# を使用してゲームを構築していますが、次の 4 つの方法のどれが読み取りアクセス専用の「ビューポート」を参照するのに最適かわかりません。
Game.Viewport を呼び出して、すべてのクラスがアクセスできる public static 変数を用意します (Game がメイン クラスです。
public static readonly Viewport Viewport = GraphicsDevice.Viewport;
使用中で:
rectangle = new Rectangle (Game.Viewport/2, ...
ビューポートを必要とする各クラスのビューポートを参照するローカル変数を用意します。
プライベート 読み取り専用 ビューポート viewport = GraphicsDevice.Viewport;
使用中で:
rectangle = new Rectangle (viewport/2, ...
ビューポートを必要とする各クラスのコンストラクターに渡されたローカル変数を使用します (これは、インポートされた Microsoft.Xna.Framework.Graphics を必要としなかった唯一のクラスです)。
プライベート読み取り専用 Viewport ビューポート。
次に、コンストラクターで:
viewport = pViewport;
使用中で:
rectangle = new Rectangle (viewport/2, ...
ビューポートが必要な (使用中の) どこでも、クラス ライブラリからビューポートを直接参照します。
長方形 = 新しい長方形 (GraphicsDevice.Viewport.Width/2, ...
速度の点でどちらが最適で、読みやすさの点でどちらが最適かを考えています。個人的には、4 番目の方法が最も簡単で最速だと思うので、ビューポートへの参照を作成する必要はありません。グローバルなものを参照していることは明らかです。「仲介者」を排除しているように見えますが、ビューポートを使用するすべてのクラスに XNA グラフィック ライブラリをインポートする必要があります。
皆さんはどう思いますか?