2013-01-25 62 views
1

我在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佈局功能。但是,您可以在後臺執行遊戲渲染,並讓該線程始終處於活動狀態。

所以現在到我的問題。如果你在嘗試這樣的嘗試之前我想聽聽你的經驗。我可以期望支付像這樣的分層視圖的性能損失嗎?更重要的是,這種性能會不會對應用的幀速率造成影響?您可以發現這種方法還有其他問題嗎?

回答

0

爲了獲得更好的遊戲性能,您應該將按鈕保持在最小值,因爲它適用於智能設備,嘗試依靠觸摸輸入進行遊戲。 對於我不同意的自定義按鈕,也有自己的按鈕更適合視覺。它讓你看上你的遊戲。 對於你的問題是,你應該避免不必要的封裝。但我不認爲這會造成巨大的性能問題。 這可以是一個很好的教程表面click me