本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2014/09/03/migrate-libgdx-to-lastest/
Libgdx现在已经是1.X时代了,但是手上很多项目都还是在0.9.X上面,感觉越来越不顺手了。
没法使用最新版本就意味着对于iOS的支持还停留在以前的解决方案中,即Xamarin+Monotouch。Xamarin收费不说,主要是慢而且要收费。
看着别人快乐的使用最新版本,实在受不了了,开始升级之旅。
基础Gradle配置
最简单的办法应该是直接自己根据项目配置专属的build.gradle配置,然后将原有依赖移除,重新构建项目就行了。
但是具体操作中感觉略麻烦,所以最后选择了新建初始化的项目,然后直接将旧的代码拷贝过去。
建立初始化项目比较简单,直接使用setup工具就行了。
我以DartsShaSha为例,这是一个简单的示例程序。
创建好初始化项目以后直接拷贝原有的项目文件过来,然后运行./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)
。
我最开始没有注意到这个问题,绘制中很多东西都没有绘制出来,感觉特别奇怪。
参考资料
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2014/09/03/migrate-libgdx-to-lastest/