2009-08-18 8 views
1

私はこのプロジェクトのためのデフォルトの描画ライブラリではなく、OpenGL/SDL/Taoを使ってC#で単純なポイント&をクリックしてゲームをしたいと考えています。C#のシンプルなグラフィックスでデフォルトのSystem.Drawing

言い換えれば、私は、フォーム上のレイヤーでクリック可能な画像を描画する最良の方法について興味があります。

理想的には、私は

1)環境層(経路、ドアなど)

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

3を有するであろう)文字層(敵)

理想的には、他のレイヤーの下にあるレイヤーはまだ見えるので、オブジェクトの下の環境を見ることができます(フォームにオブジェクトを描画するために使用するコンポーネントはすべて透明でなければなりません)。

このゲームは、タイルベースのものになるでしょう...私はいくつかの種類のコンポーネントの2D配列を生成し、それらをフォームに配置します。問題は、私はどのコンポーネントを使用すべきですか?友人はパネルを生成してフォームにドロップし、背景イメージのプロパティを使用することを推奨しましたが、より良い方法がありますか?

私はこれが開発する理想的な方法ではないことを知っています...これはもっと自分自身のプロトタイプです。後で私はおそらくタオに移動します。どこに行っても、今のところ(つまり来年になると)、私はそれを非常にシンプルに保ちたいと思います。

答えて

2

タイルは、UIを整理するための単純な論理的なチャンクです。 「タイル」アイデアを使用するには、必ずしもパネルの形でタイルを作成する必要はありません。タイルを切り替えると、文字がタイルAの右端に到達したことを意味するので、タイルBを描き、そのタイルの左端に文字を配置します。ですから、あなたのメモリ構造は、何を描画するかについての情報を含む論理タイルオブジェクトの2D配列でなければなりません。しかし、それはオプションですが、推奨しません。

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

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

関連する問題