1

Android で 2D パズル ゲームを作成しており、デザインの決定についてコミュニティの意見を聞きたいと思っています。基本設計はこれです。2D グラフィックスがバックグラウンド スレッドで描画される SurfaceView があります。次に、サーフェス ビューをオーバーレイする RelativeLayout もあります。レイアウト .xml は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center" >
<SurfaceView
    android:id="@+id/game_surface"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
<RelativeLayout
    android:id="@+id/game_overlay"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
</RelativeLayout>

すべてのタッチ イベントは game_overlay によって受信され、必要に応じてゲーム スレッドにルーティングされます。LayoutInflater を使用してレイアウトをインフレートし、それらを game_overlay 内に配置してから、必要に応じて game_overlay をクリアします。私が物事を行う理由は、両方の長所を活かすことです。独自のカスタム ボタンをキャンバスに描画する必要はなく (リセット レベル ボタンのように)、強力な Android レイアウト機能をすべて活用できます。ただし、ゲームのレンダリングをバックグラウンドで実行し、そのスレッドを常に有効に保つことができます。

それでは、私の質問に移りましょう。以前にこのようなことを試したことがあれば、あなたの経験を聞きたいです。このようにビューを階層化するためにパフォーマンスのペナルティを支払うことを期待できますか? さらに重要なことに、そのパフォーマンス ヒットはアプリのフレーム レートに悪影響を及ぼしますか? あなたが見つけることができるこのアプローチで他の問題はありますか?

4

1 に答える 1

0

ゲームのパフォーマンスを向上させるには、ボタンを最小限に抑える必要があります。これはスマート デバイス用であるため、ゲーム プレイにはタッチ入力に依存するようにしてください。カスタムボタンについては同意しません。また、独自のボタンを使用する方が視覚化に適しています。それはあなたのゲームをファンシーにします。はい、あなたの質問については、不要なカプセル化を避ける必要があります。しかし、それが大きなパフォーマンスの問題を引き起こすとは思いません。これは、サーフェスをクリックするための優れたチュートリアルになる可能性があります。

于 2014-04-30T13:21:31.207 に答える