gpt4 book ai didi

swift - 在 swift 中使用单个函数/方法将多个 Sprite 节点添加到场景中

转载 作者:行者123 更新时间:2023-11-30 10:05:53 25 4
gpt4 key购买 nike

假设我有 10 个节点,其中所有节点都是点图像,即 node1 到 node10。我创建 node1 如下:

func createNode1() -> SKNode {
let spriteNode = SKNode()
spriteNode.position = CGPointMake(CGRectGetMidX(self.frame)/1.35, CGRectGetMidY(self.frame)/1.32)
let sprite = SKSpriteNode(imageNamed: "dot_1")
sprite.zPosition = 3.0
sprite.name = "A1_Dot"
spriteNode.addChild(sprite)
return spriteNode
}

我通过创建另外 9 个函数来创建其余节点,其中下一个函数将是 func createNode2 等,一直到 10 个函数,它们之间的唯一区别是节点的名称和它的位置。基本上每个节点在场景中都有不同的位置,当然还有不同的图像名称。有没有办法一次性将 10 个节点加载到场景并在使用时操纵节点的位置?我正在寻找一种方法,使用单个函数或方法将所有 10 个节点加载到场景中,并在同一函数中分配节点的位置。谢谢。

最佳答案

您需要使用循环来迭代位置数组,并将将节点添加到场景的代码移动到循环中:

let positions = [CGPointMake(CGRectGetMidX(self.frame)/1.35, CGRectGetMidY(self.frame)/1.32), ... /*add your 9 other positions here*/]
positions.enumerate().forEach { (index, point) in
let spriteNode = SKNode()
spriteNode.position = point
let sprite = SKSpriteNode(imageNamed: "dot_\(index + 1)")
sprite.zPosition = 3.0
sprite.name = "A\(index + 1)_Dot"
spriteNode.addChild(sprite)

// Add spriteNode to the scene here
}

关于swift - 在 swift 中使用单个函数/方法将多个 Sprite 节点添加到场景中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36002851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com