我正在将游戏从iOS和Windows Phone移植到Android.我关注的大部分代码都来自Windows Phone版本,因为它与Java最相似.我的问题与LibGDX中的OrthographicCamera类有关.
我正在使用游戏对象作为此游戏的组件容器方法.这可以在这里阅读:http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/ 这样你就可以了解我在说什么.因此,游戏中的所有内容都扩展了Component组件类.每个游戏对象即一个球是一个游戏对象,它由组件组成,即Sprite,RigidBody(用于物理),Transform2(位置,旋转等).这包括Camera2类,它只包裹一个OrthographicCamera成员.
我有两个问题,我一直在研究它.我无法弄清楚如何进行分层.游戏有一个抽屉,用户可以向下滑动以拖动打开.这应该是游戏中的其他任何东西.开发XNA版本的人完成此任务的方式是通过使用多个SpriteBatches并基本上将每个SpriteBatch视为一个层.这在LibGDX中不起作用,使用多个SpriteBatches是不好的做法.问题是,游戏对象被组织为树,并且它们根据树的遍历进行渲染,因此排序最终基于对象插入树中的时间.我已经调查了DecalBatch,因此我可以使用Z顺序,但是由于游戏几乎完成,因此需要重新配置.正如我所说,我尝试使用多个SpriteBatches,但无论出于何种原因,这也不起作用.
由于这已经很长,我将在另一篇文章中提出我的第二个问题.
我想通了.我从LibGDX向Mario发送了一条消息,他建议我在渲染之前对对象进行排序.我不太确定如何做到这一点,因为它在一棵树上,我知道如何对一棵树进行排序,但排序并不存在.我为图层添加了一个字段,并使GameObject类实现了Comparable,然后,在visitor模式的accept方法中,我根据它们的层对所有节点子节点进行排序.它现在工作得很好.
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |