【问题标题】:Changing OpenGL Android to LibGDX OpenGL将 OpenGL Android 更改为 LibGDX OpenGL
【发布时间】:2011-12-20 19:16:00
【问题描述】:

我有一个具有原生 android OpenGL 实现的项目。 MyView 扩展了 GLSurfaceView,而 MyRenderer 实现了 GLSurfaceView.Renderer。我对实施不满意,因为它匆忙完成并且不合适。我想将其更改为 LibGDX 实现。几个问题,值得吗?我没有为现有的 opengl 实现使用任何本机代码,我对 C/C++ 代码并不熟悉。因此,通过切换到 LibGDX,我会看到性能提升。其次,做起来有多难。我刚开始使用 LibGDX,让应用程序在我的设备上运行。在 NDK 或 LibGDX 上投入时间更好吗?

【问题讨论】:

    标签: android opengl-es libgdx


    【解决方案1】:

    如果您不是很熟悉 C/C++,那么它可能不会帮助您的项目切换到 NDK。您将放慢进行任何框架更改的进度,而添加新语言只会加剧延迟。

    至于迁移到 libgdx,这可能是值得的时间投资。从原生 android 切换到 libgdx 时,我发现的主要优势是您可以直接在桌面上运行您的应用程序。模拟器运行游戏太慢了,所以通常你所有的测试都必须在你的手机上,这很慢而且很烦人。使用 libgdx,它会立即运行,您所要做的就是导出不同的项目来获取 apk。我发现这也是测试屏幕大小的好方法:您可以调整窗口大小而不是创建一堆虚拟设备。

    我想运行 libgdx 的主要缺点是您无法直接访问 android 框架。我通过将它们添加到android项目来解决这个问题(例如,对菜单使用不同的活动)。 libgdx 项目本质上只是游戏的核心。

    【讨论】:

    • 谢谢史蒂夫,如果我要添加应用内购买和/或广告,它是否像原生 android 一样简单。创建一个 PaymentActivity,调用 startActivityForResult(...) 并在 onActivityResult 中获取回调。还是像你说的那样,我必须解决它?我错过了更重要的一件事,因为 Android 要求我们在 onResume 上重新加载所有纹理数据(目前在 onSurfaceChanged 中执行),我必须这样做还是框架会处理它?再次感谢
    • 我从未接触过广告,但我看到了this。对于付款,您需要从 android 代码中完成所有 Activity 的工作,因此可能来自菜单或其他东西,但不是直接来自 libgdx 活动/应用程序。对于纹理,我认为既有托管纹理也有非托管纹理——我只使用了托管纹理,并且为您重新加载了这些纹理。 This 是对 libgdx 期望的一个非常好的概述。
    猜你喜欢
    • 1970-01-01
    • 2014-01-26
    • 2015-06-03
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多