我在Android上創建了2d益智遊戲,並希望獲得社區對設計決策的意見。基本的設計是這樣的。有一個SurfaceView的2D圖形繪製在後臺線程中。然後我也有一個覆蓋表面視圖的RelativeLayout。佈局的.xml看起來是這樣的:Android 2D遊戲體系結構
<?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佈局功能。但是,您可以在後臺執行遊戲渲染,並讓該線程始終處於活動狀態。
所以現在到我的問題。如果你在嘗試這樣的嘗試之前我想聽聽你的經驗。我可以期望支付像這樣的分層視圖的性能損失嗎?更重要的是,這種性能會不會對應用的幀速率造成影響?您可以發現這種方法還有其他問題嗎?