我正在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布局功能。但是,您可以在后台执行游戏渲染,并让该线程始终保持活动状态。
现在来回答我的问题。如果你以前尝试过这样的事情,我想听听你的经验。我能期望为这样的分层视图付出性能损失吗?更重要的是,性能下降会不会对应用程序的帧率造成不利影响?这种方法还有没有其他你能发现的问题。
发布于 2014-04-30 21:21:31
为了获得更好的游戏性能,你应该保持最低限度的按键,因为对于智能设备,尝试使用触摸输入进行游戏。对于自定义按钮,我不同意,也有自己的按钮是更好的视觉效果。它会让你的游戏变得花哨。对于你的问题,是的,你应该避免不必要的封装。但我不认为这会造成巨大的性能问题。这可能是表面click me的一个很好的教程
https://stackoverflow.com/questions/14514877
复制相似问题