升级Libgdx到最新版本

3 9月

Libgdx现在已经是1.X时代了,但是手上很多项目都还是在0.9.X上面,感觉越来越不顺手了。

没法使用最新版本就意味着对于iOS的支持还停留在以前的解决方案中,即Xamarin+Monotouch。Xamarin收费不说,主要是慢而且要收费。

看着别人快乐的使用最新版本,实在受不了了,开始升级之旅。

 

基础Gradle配置

最简单的办法应该是直接自己根据项目配置专属的build.gradle配置,然后将原有依赖移除,重新构建项目就行了。

但是具体操作中感觉略麻烦,所以最后选择了新建初始化的项目,然后直接将旧的代码拷贝过去。

建立初始化项目比较简单,直接使用setup工具就行了。

我以DartsShaSha为例,这是一个简单的示例程序。

setup

创建好初始化项目以后直接拷贝原有的项目文件过来,然后运行./gradlew idea创建项目并引入Intellij IDEA。

基础配置调整

首先新版本已经移除了对于OpenGL ES 1.0的支持,原有配置的中的config.useGL10不再支持,默认启用OpenGL ES 2.0,config中可以不再书写。

对于配置中的useGLSurfaceView20API18这一项,默认为false,就不要轻易改动了。

Stage的缩放

新增的Viewport类增强了Libgdx的屏幕自适应能力,原有的构造函数Stage(480,320,true)就不再适用,可以考虑使用new Stage(new StretchViewport(480, 320));替换。

除了StretchViewport以外,可以选择的还有FitViewport、FillViewport、ScreenViewport、ExtendViewport和CustomViewport。

一般情况用StretchViewport就够用了,不需要自己实现一个。

一些细节

有些细节有点复杂,比如Actor中的public void draw(SpriteBatch batch, float parentAlpha)变成了public void draw(Batch batch, float parentAlpha)

我最开始没有注意到这个问题,绘制中很多东西都没有绘制出来,感觉特别奇怪。

参考资料

Viewport

发表评论

电子邮件地址不会被公开。