将昂贵的渲染(可滚动容器)与舞台的其余部分分开

Separate expensive rendering (scrollable container) from rest of the stage

我正在处理具有可滚动列表的游戏视图。我注意到当我滚动一段时间后我的 phone 开始变热,我认为这是因为当我滚动时 pixi 以 60fps 重新渲染整个游戏视图。

有没有办法将这个可滚动列表(带有掩码的容器和子容器)放到某种单独的层上,这样当它被滚动时,其余的 pixi 应用程序不需要重新渲染和也许这样有助于减少 cpu 的负载?

我不知道你的可滚动列表的机制是什么,但你能检查一下你在给定时间激活了多少对象(容器/精灵/Pixi.Graphics/掩码)吗?例如:每隔几秒在控制台日志中显示此类计数。也许加热/缓慢是由 PIXI 需要处理的对象数量不断增加引起的 - 这就是为什么开始时还可以,但情况会随着时间的推移而恶化。如果是这样,那么也许您应该尝试删除(或隐藏?)不再使用或未显示在屏幕上的对象。

另请参阅有关 PIXI 在移动设备上的性能以及如何优化它的讨论 - 例如此线程:https://www.html5gamedevs.com/topic/38509-fastest-way-to-do-masking/?tab=comments#comment-221654