特に、私はC#とXNA、そして明らかにWindowsについて考えています。通常のXNAゲームであるメインゲームがあるとしますが、ある時点で、XNAにも実装されているがゲームとは完全に独立したミニゲームに一時的に切り替えたいと考えています。
同じウィンドウハンドルを再利用しながら、2つのゲームに切り替えたり、元に戻したりする方法はありますか?また、古い状態をメモリに保持することもできますが、この永続的なファイルへの書き込みも実装できます。
また、最初のゲームに戻るときに、ミニゲームのメインメソッドによって返された値にアクセスする方法はありますか?たとえば、プレーヤーがミニゲームをクリアしたかどうかに応じて、1または0になります。
アンドリュー・ラッセルは書いている:
ミニゲームとメインゲームを同じプログラム内の別々のクラスに構築する必要があります。これらの各クラスには、Update、Draw、Initializeなどのメソッドが必要です。次に、これらのメソッドを呼び出して一度に1つのゲームのみをアクティブにする何らかの種類のマスターコントローラーを用意する必要があります(これは単にメインゲームクラスにある場合もあります)。
答えてくれてありがとう。あなたの提案は、私が通常のゲーム状況で行うことです-私がミニゲームとそのコンテンツのすべてを作成している状況です。
しかし、これはゲームではなく、グラフィックアドベンチャーを作成するためのゲームメーカーツールであり、特定のゲームイベントに応答して外部ミニゲームを接続する必要性を感じるのはエンドユーザーです。
私が交換しようとしている古い内部エンジンはFlashで行われ、メインのSWF内にSWFをロードするだけでこの問題を解決しました。ほとんどの場合、問題なく動作しました。同様のことをしようとしていますが、現在XNAを使用しています。
しかし、あなたの電車や考えに従って、おそらくすべてのミニゲームの基本クラスまたは共通インターフェイスを含む個別のアセンブリを作成し、それをdllとしてコンパイルできます。次に、ユーザーはそのライブラリを参照し、インターフェイスを実装して、実行時にエンジンによってロードされ、メインゲーム内の別の状態として実行される独自のライブラリにコンパイルします。私はいくつかの隠された影響を逃していますか?