1

我正在安卓上创建一个 2d 益智游戏,并希望获得社区对设计决策的意见。基本设计是这样的。有一个 SurfaceView ,其中 2d 图形在后台线程中绘制。然后我还有一个覆盖表面视图的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 回答