Phaser是否将可见设置的精灵渲染为假?
我制作的游戏很像Motherload,但地形无限。地形随着你的进展生成,并由64x64大小的精灵(瓷砖)组成,你可以想象当你沿着很多精灵添加到场景中。超出视野的精灵将其可见属性设置为false,但是当玩家进行并且生成很多地形时,我的帧速率(FPS)显着下降。为什么只有屏幕上的精灵将其visible属性设置为true?我一遍又一遍地检查过,只有屏幕上的精灵将其可见属性设置为true,并且不明白为什么我的FPS下降得那么多,Phaser仍然将这些精灵渲染为可见设置为假?
答案 0 :(得分:1)
不是不断创建新Sprite然后.kill()
,而是应该回收Sprites。
以下是Recycling.
的示例它与粒子效果中使用的技术相同(因此,如果粒子生成器运行无穷大,它只会创建有限数量的粒子)
以下是使用步骤:
Phaser.Group
sprite.inCamera
检入update
),然后.kill()
。getFirstExists(false)
获取重复使用的精灵 。.revive()
瞧!您会看到性能大幅提升。 (特别是如果您之前尝试创建1,000个精灵)