2

最近、単純なドラッグ アンド ドロップ図形ゲームを完成させました。ユーザーは形状 ( ImageView) を別の「空のプレースホルダー」にドラッグしましたImageView

単純な形状をドラッグする代わりに、これをもう少し高度なものにしたいと思います。たとえば、円を 5 つの異なるピースに分割するなど、さまざまな非直交形状のパズルを作成したいと考えています。今悩んでいるのは、レイアウトをどうするかです。真に「カスタム」な形状の を作成する方法がわかりませImageViewん。私の研究からわかる限り、それは不可能です。したがって、今のところ私の考えは、いくつかの正方形を重ねることですImageView。それぞれの正方形は画像のサブセットのみを持ち、残りは透明になります。したがって、最終的な出力は、多数のカスタム形状の のように見えますImageView

例:

ここに画像の説明を入力+ ここに画像の説明を入力+ ここに画像の説明を入力+ここに画像の説明を入力

内部セクションのみが「表示」され、円の残りの部分は透明であるため、これらすべてのピースが画面上の同じ場所に配置されると、最終的な画像は次のようになります。

ここに画像の説明を入力

これはまだ試していませんが、少なくとも 1 つの問題が予想されます。ピースをこのパズルにドラッグすると、同じ場所にドラッグすると、すべてのピースが所定の位置に「スナップ」されます。実際には、ここにあるのは、ImageView周囲に目に見えない長方形の境界がある 内の円の写真だけです。

うまくいけば、この状況は明らかです。今私の質問:

  1. ImageView画像を重ねるという私の考えの代わりに、真にカスタム形状の s を持つことは可能ですか?
  2. 私が考えていることが、このパズルのアイデアを処理する最良の方法である場合、これらすべてのパズルのピースに対して同じ場所で「ドロップ」アクションが発生しないように、どのプロパティを変更できますか? ピザの形をしたピースを「ドロップ」したい場合は、円の左上に近づいたときにのみ所定の位置に収まるようにします.

注: 私は Android プログラミングは初めてで、Java/XML もやや初めてです。何かを見落としている可能性が非常に高いので、適切と思われる他のアプローチを提案してください。

4

2 に答える 2

0

つまり、ドロップを受け入れたい特定の場所があり、それらの座標を知っていると仮定します(d_x,d_y).

次に、ドラッグしているピース、たとえば「ピザ」ピースの画像ビューの中心の座標を単に監視し(p_x,p_y)、ピースとドロップポイントの間の距離が許容範囲内にある場合は、ドロップを受け入れます。


しかし、長方形以外の画像ビューを作成する方法があるかどうかを尋ねている場合、それが可能だとは思いません。

ただし、あなたの場合は必要ないと思います。ピースを正確に所定の位置にドラッグしたい場合でも、ドラッグ可能な長方形がピースの形状と長方形がピースを包むと仮定します。

于 2013-09-30T16:40:13.330 に答える