我在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布局功能。但是,您可以在后台执行游戏渲染,并让该线程始终处于活动状态。
所以现在到我的问题。如果你在尝试这样的尝试之前我想听听你的经验。我可以期望支付像这样的分层视图的性能损失吗?更重要的是,这种性能会不会对应用的帧速率造成影响?您可以发现这种方法还有其他问题吗?