2012-01-02 1 views
2

私はユーザーがパズルの部分を回転して移動させて最終的な画像を形成するAndroidパズルゲームを構築しています。それはスライディングブロックのパズルのようなものですが、作品の形やサイズは一様ではありません - テトリスのスライディングブロックのようなものです。スナップアライメントでドラッグアンドドロップのパズルタイプのインターフェイスを構築する

現時点では、パズルピースはimageViewsとして用意されていますが、これを選択して配置して配置することができます。私はシーンの背後にある形状のベクトル形式をPointsのArrayListとして持っています。

...しかし、私はどのように一緒に作品を整列スナップに取り組まれています。私。あるピースが別のピースの近くにある場合、近くのエッジがお互いに重なるように(すなわち本質的に境界を共有するように)1つのピースをシフトさせる。

これは何度もやったことがありますが、(すべての言語で)コードの例は見つかりません。グリッドにはスナップするのと似ていますが、同じではなく、オブジェクトをお互いにスナップすることができるときに、ダイアグラムタイプのインターフェイスで使用するのと同じ種類の機能です。

誰でも私にチュートリアル(任意の言語)/コードを指し示すことができますか、それを実装する方法についてアドバイスできますか?

答えて

1

UrsはTangramのようなゲームです。私はそれが最終的な画像を形成するためにイメージの部分で行うことはできないと思う。これは、android.Graphicsパッケージを使用してジオメトリシェイプを作成することで(最終図形と最終図形の両方のスライス)実行できます。ピース/スライスの端と頂点から最終的な形状を決定するのは非常に簡単です。

0

http://code.google.com/p/photogaffe/はチェックアウトする価値があります。これは、15個の部分からなるオープンソースのスライドパズルで、ユーザーは自分のギャラリーから画像を選択することができます。

さまざまな図形と回転方法を把握するだけで済みます。あなたが自分のイメージを提供している場合、それらをロードする方法。

希望に役立ちます。

0

各図形の周囲にボックスを描画することはどうでしょうか?その後、あなたはそれの真ん中を定義します。次に、各ピースの回転の値を保存することができます。そして、あなたはベクトルとその中間を一緒に保存する必要があります。

次に、ベクトルが合理的な範囲にあり、回転が+ -X度であることを計算するだけです。たとえば、ベクトルが+ -10ピクセルの範囲にあり、回転が+ -3°の場合、ピースを回転させてパズルにフィットさせることができます。

関連する問題