2011-12-20 32 views
0

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

回答

2

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

至于转移到libgdx,这可能是一个值得花时间的投资。我从native android切换到libgdx时发现的主要优点是可以直接在桌面上运行应用程序。模拟器运行速度太慢无法运行游戏,因此通常所有的测试都必须在您的手机上,这很慢并且会加剧。使用libgdx,它马上运行,而你所要做的就是导出一个不同的项目来获得一个apk。我发现这也是测试屏幕尺寸的好方法:您可以调整窗口大小,而不是创建一堆虚拟设备。

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

+0

谢谢史蒂夫,如果我要添加应用程序内购买和/或广告,它就像本地机器人一样简单。创建PaymentActivity,调用startActivityForResult(...)并在onActivityResult中获取回调。或者像你说的,我必须解决它?还有一件我错过的重要事情,因为Android要求我们重新加载所有的onResume纹理数据(目前在onSurfaceChanged中做),我必须这样做吗?还是框架会照顾它呢?再次感谢 – AkasH 2011-12-22 13:53:23

+0

我从来没有使用广告,但我看到[this](http://code.google.com/p/libgdx/wiki/AdMobInLibgdx)。对于付款,您需要从android代码中完成所有Activity活动,所以可能来自菜单或其他东西,但不能直接从libgdx活动/应用程序中完成。对于纹理,我认为这里有托管纹理和非托管纹理 - 我只使用manaaged,并且为你重新加载。 [This](http://code.google.com/p/libgdx/wiki/TheArchitecture)非常好的概述了libgdx的期望。 – 2011-12-22 14:47:16

+0

感谢您的信息。干杯。 – AkasH 2011-12-22 17:53:09