Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift SpriteKit-如何获取在insertChild中使用的SKNode索引_Swift_Sprite Kit_Skspritenode_Sknode - Fatal编程技术网

Swift SpriteKit-如何获取在insertChild中使用的SKNode索引

Swift SpriteKit-如何获取在insertChild中使用的SKNode索引,swift,sprite-kit,skspritenode,sknode,Swift,Sprite Kit,Skspritenode,Sknode,我在我的场景中添加了大量相同的SKSpriteNodes,它们都具有相同的zPosition,根据它们添加到场景中的顺序层叠在一起。我需要能够选择一个SKSpriteNode,并在同一索引处添加另一个(加或减)。我知道我可以使用scene.insertChild(mySpriteNode,atIndex:index)但是如何从SKNode或SKSpriteNode获取索引?我已经浏览了文档,在网上,我肯定遗漏了一些东西,看起来很简单!我的理想解决方案: scene.insertChild(myS

我在我的场景中添加了大量相同的SKSpriteNodes,它们都具有相同的zPosition,根据它们添加到场景中的顺序层叠在一起。我需要能够选择一个SKSpriteNode,并在同一索引处添加另一个(加或减)。我知道我可以使用
scene.insertChild(mySpriteNode,atIndex:index)
但是如何从SKNode或SKSpriteNode获取索引?我已经浏览了文档,在网上,我肯定遗漏了一些东西,看起来很简单!我的理想解决方案:
scene.insertChild(mySpriteNode,atIndex:someSpriteNode.siblingIndex)
但我在SKNode上没有看到类似siblingIndex的属性,或者它可能被称为indexInParent

我想我可以对添加到场景中的每个节点进行计数,并将其子类化为SKSpriteNode并设置自己的索引,但我在两个不同的位置添加节点。如果我以后尝试更改代码,这将是乏味的,而且很容易被破坏

也许我可以在场景中遍历整个children数组属性,直到找到我正在搜索的节点,但是这非常昂贵而且效率低下

使用zPosition并不理想,因为我在应用程序的其他几层中使用zPosition,并且可以添加的SkSpritodes的数量是无限的,所以最终我会突破到下一层

希望有人告诉我,我只是忽略了这个财产的某个地方!
感谢您的帮助,谢谢

抱歉,没有对sknode或SKScene的命令。您在子类化和添加自己的自定义顺序/索引方面可能是正确的。我不认为有直接的方法来确定子级的索引。我认为您唯一的选择是迭代场景的子对象(如您所提到的)。您可以使用
let index=find(self.children as[SKNode],sprite)
执行此操作,它返回可选的
Int