混合使用Android视图和GLSurfaceView

8

我目前正在开发游戏,但十分担心在进行到一半时发现我的操作会导致错误或降低性能。以下是我考虑的设置方式:

视图布局

首先,我想要一个LinearLayout,里面包含一个HUD和一个GLSurfaceView。然而,在某些情况下,我可能会“暂停”游戏视图,并切换到包含库存或装备等其他线性布局。

我认为这种方式是最好的,因为我可以利用Android提供的所有出色组件,而不是使用OpenGL自己制作。但是,我担心混合两种类型的视图可能会有一些问题。任何见解或建议都将不胜感激。谢谢。

1个回答

19

我一直在使用FrameLayout,并将GLSurfaceView作为第一个元素。也就是说,它在堆栈的底部,其他视图/视图组叠加在其上面。我建议只暂停游戏循环并放置一些不透明视图覆盖其上方以隐藏它,而不是交换视图或进行其他操作:

<FrameLayout 
    android:id="@+id/graphics_frameLayout1" 
    android:layout_width="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent">
    <android.opengl.GLSurfaceView 
        android:id="@+id/graphics_glsurfaceview1" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent">
    </android.opengl.GLSurfaceView>
    <LinearLayout 
        android:layout_height="fill_parent" 
        android:id="@+id/inventory" 
        android:gravity="center" 
        android:layout_width="fill_parent" 
        android:orientation="vertical"
        android:visibility="gone">
    </LinearLayout>
    <LinearLayout 
        android:layout_height="fill_parent" 
        android:id="@+id/HUD" 
        android:gravity="center" 
        android:layout_width="fill_parent" 
        android:orientation="vertical">
    </LinearLayout>
</FrameLayout>

Android Framelayout for games. Check out ma ms paint skillz


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接