私は Android ゲーム開発にかなり慣れていないことを指摘したいと思います。ゲームをプログラミングするいくつかの方法を試してみましたが、どちらも機能することがわかりましたが、どちらにも独自の利点がありました。ですから、どちらの方法がより良い/一般的な方法であるかを知りたいです。たとえば、ジグソー パズル ゲームを作成しようとしている場合、互いに相互作用し、タッチ イベントに応答する多くのパズル ピース オブジェクトが必要です。
方法 1:
Java から学んだように、同じように動作するオブジェクトが多数ある場合は、クラスを作成してから、そのクラスのオブジェクトを作成する必要があります。これをゲームプロジェクトで試し、ImageViewを拡張したクラス「PuzzlePiece」を作成しました。次に、メイン プログラムでそれらをレイアウトに追加し、メイン アクティビティから移動しました。これはかなり複雑で時間がかかりました。また、それを行う正しい方法のようにも感じませんでした。
方法 2:
ゲーム オブジェクトをコンポーネントとして追加しました (ImageView、ImageButton、画像の背景を持つカスタム レイアウトなど)。このようにして、それらをより適切に制御できるようになり、同時に多くのオブジェクトを保持して相互に作用させることがより簡単になりました。しかし、この方法は非常に遅く、正しい方法とは思えませんでした。
方法 3:
Activity に SurfaceView を追加し、draw() メソッドを使用してすべてのオブジェクトをキャンバスに描画します。この方法ははるかに高速でしたが、この方法ではオブジェクトをあまり制御できませんでした。たとえば、キャンバスに多くのオブジェクトを描画し、それらすべてをタッチ イベントに応答させたり、相互にやり取りさせたりすることは、実現が困難でした。
私が逃した他の方法はありますか、それとも私の方法の1つがこれを行う正しい方法に近いですか?