前两天项目中有一个绘制多层景深背景的需求(有背景视差,每一层的背景移动速度不同),开始的时候用 ObjectAnimator 来实现,即把两张与屏幕等宽的图片放在一起,轮流通过屏幕,但是这样的话每一次跳转到另一个 Activity 之后返回来两张图片之间会出现间隔;再者总觉的这种方法局限性太大满足不了需求。
之后用了 SurfaceView+canvas 的的方法实现,做好之后发现 canvas.drawBitmap()绘制效率实在是太低了,一层背景还好,如果背景层数多了(需求中有 4~5 层的样子)就会出现严重的卡顿,最终无奈放弃。
最后用了 android 上的游戏赢擎— AndEngine ,完美的满足了需求。网上查了下,由于 AndEngine 的图形处理部分是直接对 OpenGL 做的封装,所以绘图的效率相对较高。
那么,问题来了。 AndEngine 是一个优秀的游戏引擎,与 Android 原生的代码混合开发方便(很多类都是对原生代码的一个封装,可以直接将一个游戏 View 嵌入到一个普通的 layout 中),其本身又是开源,所以原本是想对其源码加以研究学习的。但是笔者搜到的博客资料都是 12~13 年间的, 14 年的都很少,其本身也没有出官方的说明文档, github 上的主页貌似很早就停止更新了。后来了解到橙子游戏公司基于 AndEngine 的开发的跨平台开源引擎 OGEngine ,根据官方说法支持 JAVA 语言编码发布到 iOS 平台上~~个人觉得这对 JAVA 程序员来讲是一大福利啊,但是 OGEngine 的最新版本也就更新到 14 年,不知道还会不会有后续。
所以想请教一下各位社区的大神, AndEngine/OGEngine 还有进一步研究的必要吗?
附上 AndEngine 的 github 地址:(https://github.com/nicolasgramlich)以及 OGEngine 引擎官方地址:(http://oge.ogengine.com/)(萌新第一次发帖不当之处请多多见谅)
1
myforeveryouth 2016-10-11 11:36:26 +08:00
AndEngine 刚工作的时候用过一段时间(大约 1 年),基本在搞业务逻辑,对绘图什么的没有研究过。但是确实很不友好,文档少,工具少。如果你非要用安卓的游戏引擎,推荐下 libgdx 。
|
2
nekocode 2016-10-11 11:58:07 +08:00
「可以直接将一个游戏 View 嵌入到一个普通的 layout 中」这个其实很多其它引擎都能做到啊,把渲染结果从显存 copy 回内存参与 UI 绘制就行了。
|
3
Thiece 2016-10-11 15:51:51 +08:00
现在不是 cocos 和 unity 用的比较多吗?
|
4
LX OP @Thiece 是啊~~然而 cocos 用 C++, unity 用 C#,对于一个 JAVA 程序员来讲,还是有一定门槛的~~所以征求一下大家的看法, AndEngine 还有没有值得入坑的必要~~
|
6
LX OP @myforeveryouth 啊~~这个研究下~~不过感觉 AndEngine 处理一些简单的业务逻辑还是比较容易上手的吧~~(感谢大神指点)
|
7
Vindroid 2016-10-11 16:17:52 +08:00
游戏引擎只考虑 java 端的话推荐 libgdx ,上学的时候游戏全用这写的,最近变化有点大,更不上了
|