是否自动删除了图片?

问题描述 投票:-2回答:1

我目前正在尝试为游戏中的一些坠落星编码,一旦它们移出屏幕,它们似乎消失了。但是我不确定swift是否真的为我自动删除,或者它们是否仍在徘徊。

我正在屏幕顶部启动它们,并使用PhysicalBody使用重力将其放下。

star.physicsBody = SKPhysicsBody(rectangleOf: star.size)

[我知道苹果的文档说:“以后,如果将精灵从场景中移除或不再可见,则SpriteKit可以删除纹理数据,如果它需要该内存用于其他目的。”

https://developer.apple.com/documentation/spritekit/skspritenode/getting_started_with_sprite_nodes

但是我发现这种模糊性,只是想确认一下,因为我再也无法在屏幕上看到星星了,所以我也可以假设它已被移除。

((不只是在屏幕外聚集)

swift sprite-kit skspritenode skphysicsbody
1个回答
1
投票

否-它不会自动删除。

通过“从场景中删除”,SK文档并不意味着如果您再也看不到它,则意味着在所涉及的精灵上调用了“ RemoveFrom ...”方法。

如果精灵不可见,那么游戏引擎将不会绘制它,并且可以通过删除其纹理来优化内存,但是精灵仍在跟踪中并与物体碰撞并弹起,等等。>>

SK场景在所有方向上都可以无限延伸,并且您设备的屏幕只是场景上的一个可移动窗口。如果您在游戏中确定不再需要在画面外移动的精灵,则需要代码来检测到此问题,然后针对该精灵发出“ RemoveFromParent”。

© www.soinside.com 2019 - 2024. All rights reserved.