1

私は最初の C# プログラムとしてジグソー パズル ゲームを作成しています (これまでに 3 週間の独学)。ビットマップを取得し、画像に分割し、セクションを作成できるようになりました。必要に応じて各画像を透明にします。ピースの側面を示す点の配列があり、境界線の描画は問題ありません。Graphics Pathはこれらのポイントをカプセル化し、Regionはそれを定義するパラメーターとして Path オブジェクトを受け取ります。

私の質問は、ヒット検出に関して、C# は重複する System.Drawing Regions をどのように処理するのでしょうか? ある領域が別の領域と重なっている場合、両方の領域がヒットで応答しますか、それとも最後に描画された領域がヒットしますか?

このチュートリアルを読んでアイデアを得ました。2D/RegionIsVisible.htm">http://www.java2s.com/Tutorial/CSharp/0480_2D/RegionIsVisible.htm そして、isVisible() メソッドを呼び出して、移動するピースのグループを決定できることに気付きました。よろしくお願いします!

4

1 に答える 1

0

Regionを使用するのではなく、GraphicsPathを使用するだけで、この問題に対するより良い解決策を実際に見つけました。重複は問題ではありません。MouseEvents が気にするのは、クリックした場所だけです。GraphicsPath 構成体は、他の構成体とオーバーラップするかどうかに関係なく、公正なゲームです。

とにかく、問題は解決しました。交差する領域または GraphicsPath のオーバーラップは問題ではありません。

私の C# トラブルシューティング ゲームの現在の進行状況。今のところすべてのタブは長方形ですが、プログラムを湾曲したタブに変換することは、私の新しい理解では簡単なはずです。

于 2012-07-26T23:10:25.177 に答える