我想SKShapeNode
使用 Sprite Kit 添加到随机位置,直到屏幕变满。
如何找到屏幕中的空白区域?
这不是 SK 中现成的功能。您唯一的解决方案是创建一个 hack 来做您想做的事。一种可能的方法是创建一个非常小的节点并将其放置在屏幕上的不同位置,使用循环。例如 (x,y 位置), 0,0 -> 4,0 -> 8,0 等等...
您可以使用func intersectsNode(_ node: SKNode) -> Bool
来查看此节点是否与任何其他节点相交。
另一种方法可能是使用相同类型的逻辑,但func containsPoint(_ p: CGPoint) -> Bool
改为使用。
这两种方法都是处理器密集型的,因此您应该只谨慎地运行它们。