Android 2D游戏架构

时间:2013-01-25 03:29:00

标签: android

我正在Android上创建一个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布局功能。但是,您可以在后台执行游戏渲染,并让该线程始终保持活动状态。

现在谈谈我的问题。如果你在我想听听你的经历之前尝试过这样的事情。我可以期望为这样的分层视图支付性能损失吗?更重要的是,性能损失会对应用程序的帧速率产生不利影响吗?您可以发现这种方法还有其他问题吗?

1 个答案:

答案 0 :(得分:0)

为了获得更好的游戏性能,您应该将按钮保持在最低限度,因为它适用于智能设备,尝试依靠触摸输入进行游戏。 对于自定义按钮我不同意,也有自己的按钮更适合于粘性。这让你的游戏变得有趣。 对于你的问题,你应该避免不必要的封装。但我认为这不会导致巨大的性能问题。 对于曲面click me

,这可能是一个很好的教程