我正在将iOS和Windows Phone游戏移植到Android。我对端口的大部分代码都来自Windows Phone版本,仅仅因为它与Java最为相似。我的问题涉及LibGDX中的OrthographicCamera类。LibGDX纹理渲染顺序
我使用游戏对象作为此游戏的组件容器方法。这可以在这里阅读:http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/只是让你知道我在说什么。所以,游戏中的所有东西都扩展了Component组件类。并且每个游戏对象,即一个球是一个GameObject,它是组件的常量,即Sprite,RigidBody(用于物理),Transform2(位置,旋转等)。这包括Camera2类,它正在包装一个OrthographicCamera成员。
我有两个问题,我有研究它没有结束。我无法弄清楚如何进行分层。游戏有一个抽屉,用户可以向下滑动拖动打开。这应该在游戏中的其他任何东西之上。开发XNA版本的人通过使用多个SpriteBatches并基本上将每个SpriteBatch作为一个图层进行处理。这在LibGDX中不起作用,并且使用多个SpriteBatches是不好的做法。问题是,游戏对象被组织为一棵树,并且它们根据树的遍历被渲染,所以排序最终基于对象被插入到树中的时间。我查看了DecalBatch,以便我可以使用Z排序,但是由于游戏接近完成,它需要分配重构。正如我所说我尝试使用多个SpriteBatches,但无论出于何种原因,这也不起作用。
由于这已经是一篇很长的文章,我会在另一篇文章中提出我的第二个问题。
你在使用Stage吗?然后,您可以创建另一个舞台或向舞台添加东西到窗口。 – Matsemann 2012-08-07 10:26:11
我实际上联系了Mario(领导LibGDX开发者)关于Scene2D的东西(这个阶段是建立在这个基础上的),他说我不应该将它用于UI以外的任何东西,或者是一个非常简单的游戏。但是,这可能是一个想法,也许只是为抽屉使用舞台。我会研究这一点。 – weaverx9x9 2012-08-07 12:55:47
我认为在这一点上添加舞台会过于复杂。我认为它会工作,但它需要分配重构。我在google代码中找到了LibGDX的todo列表,并且他们添加了z-order到sprites。它在MUSTS 0.9列表中。不要认为它已经完成。 – weaverx9x9 2012-08-07 13:05:00