1

デフォルトの描画ライブラリを使用して C# で簡単なポイント & クリック ゲームを開発したいと考えています...このプロジェクトには openGL/SDL/Tao はありません。

言うまでもなく、クリック可能な画像をフォームのレイヤーに描画する最良の方法に興味があります。

理想的には、

1) 環境レイヤー (通路、ドアなど)

2) オブジェクト層(アイテム)

3)キャラクターレイヤー(敵)

理想的には、他のレイヤーの下にあるレイヤーが引き続き表示可能であるため、オブジェクトの下の環境を引き続き表示できます (そのため、オブジェクトをフォームに描画するために使用するコンポーネントは透明である必要があります)。

このゲームはタイル ベースになる予定です...そのため、ある種のコンポーネントの 2D 配列を生成し、それらをフォームに配置します。問題は、どのコンポーネントを使用すればよいかということです。友人は、パネルを生成してフォームにドロップし、背景画像プロパティを使用することを勧めていますが、より良い方法はありますか?

これが開発の理想的な方法ではないことはわかっています...これは自分にとってのプロトタイプにすぎません。後で、どこかに行き着いたらおそらく Tao に移動しますが、今のところ (つまり、来年かそこら)、非常にシンプルに保ちたいと思います。

4

1 に答える 1

2

タイルは、UIを整理するための単なる論理的なチャンクです。「タイル」のアイデアを使用するために、必ずしもパネルの形のタイルを用意する必要はありません。タイルを切り替えるということは、単にキャラクターがタイルAの右端に到達したことを意味するため、タイルBを描画して、そのタイルの左端にキャラクターを配置します。したがって、メモリ構造は、描画するものに関する情報を含む論理タイルオブジェクトの2D配列である必要がありますが、必ずしもパネルである必要はありませんが、それはオプションですが、お勧めしません。

レイヤー:レイヤーについて心配する必要はありません。あなたがしなければならないのは正しい順序で描くことです:最初に環境、次にオブジェクト、そして文字。.Netとおそらくすべてのフレームワークは後ろから前にペイントします。つまり、最初に描画されたものは、後で描画されたオブジェクトによって完全にまたは部分的に隠される可能性があります。「階層化」は自動的に行われます。オブジェクトを独自の範囲内に描画するだけであれば、透明度について心配する必要はありません。たとえば、20x20ピクセルの文字は、20x20ピクセルの境界内に描画されます。

もちろん、これはすべて、Paintイベントハンドラーで生のe.Graphics.Draw*およびe.Graphics.Fill*呼び出しを想定しています。ソフトウェアの他のものと同様に、101の方法があります...

于 2009-08-18T14:16:15.570 に答える