LibGDX - Actors彼此叠加,避免两次绘制调用

时间:2016-09-18 23:09:57

标签: libgdx

我正在写一张带有多张牌的纸牌游戏,这些牌将叠加在未播放的牌组上,也可以放在玩家手中。

目前我在开始时将所有100名演员添加到屏幕上以使其更容易,因此我无需在需要时管理添加它们。他们都是从彼此的顶部开始,有些人可以分发给玩家手中,这也只是成堆的牌。因此理论上,在5人游戏中,只有6张牌可见,牌组和每个玩家的手牌顶部。

我希望有人可以告诉我一个聪明的方法,意味着只有6种绘制方法可以在可见的角色上运行,或者我是否必须自己管理所有这些?

如果我这样做,你会建议只在我需要时添加演员,或者将它们添加为隐形,然后在需要时将它们设置为可见?

还是另一种方法?

2 个答案:

答案 0 :(得分:1)

为了节省大量的计算,你可以只渲染卡片的图像6次。如果正在处理一张牌,则只需渲染第7张正在屏幕上移动的牌。这避免了调用大量对象的draw方法。

答案 1 :(得分:0)

如果每堆中只有一张卡片可见,您可以使用堆叠。 堆栈就像一个数组,您可以从一端访问元素,一次只能访问一个元素。然后,您只需在堆栈顶部卡上调用draw方法(peek)。然后丢弃顶部卡片并将下一张卡片放在顶部(弹出)。

一些教程和示例:

tutorialspoint.com

princeton.edu

或者只是google" Java Stack"它的使用非常简单。