在具有巨大世界的游戏中正确使用scene2d的舞台

gvl*_*sov 8 libgdx scene2d

如果整个"游戏世界"比视口宽几千倍,并且如果我想使用scene2d来管理游戏对象作为Actors,我应该创建与全世界一样宽的Stage对象,还是应该Stage是当前的某个区域视口而不是整个世界?
换句话说,Stage宽度和高度越大,自身消耗的内存越多,即使我只在一个小视口大小的部分渲染对象?

noo*_*one 13

我想你误解了究竟Stage是什么.舞台本身并没有真正的尺寸.您没有指定宽度或高度,或者Stage您只指定视口的宽度和高度.视口就像一个窗口,只显示您的世界的一部分,即场景.A Stage是一个2D场景图,它与你的"成长" Actors.你拥有的Actors越多,你的舞台就越大(记忆力越强),但它并不取决于你的Actors实际上有多远.如果它们非常普及并且你只显示整个的一小部分Stage,它将被处理得非常有效,因为场景图将这个巨大的空间细分为能够非常快速地决定是否忽略某个Actor,或者在屏幕上绘制它.

这意味着a Stage实际上正是你需要的这种情况,你应该没有任何问题,FPS和内存明智.但是当然如果您Stage的视口大小是视频大小的1000倍,并且您知道某些演员不会很快显示出来,那么将它们添加到舞台中可能是有意义的.