2013-01-25 65 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