gpt4 book ai didi

swift - SpriteKit : Add Multiple SKSpriteNodes To The Scene

转载 作者:可可西里 更新时间:2023-11-01 02:18:41 26 4
gpt4 key购买 nike

我有一个图像应该多次直接添加到场景中(例如墙壁)。为此,我想出了一个简单的算法来改变 x 和 y 坐标。

    func addBackground(){
bg = SKSpriteNode(imageNamed: "background")
let fieldsX = 5
let fieldsY = 8
var xPos = CGFloat()
var yPos = CGFloat()
let fieldsWidth = screenWidth / CGFloat(fieldsX)
let sumField = fieldsX * fieldsY

bg.size = CGSize(width: fieldsWidth, height: fieldsWidth)
for(var i = 0; i < sumField; i++){
bg.position = CGPoint(x: xPos, y: yPos)
self.addChild(bg)
xPos = xPos + fieldsWidth
if(i % fieldsX == 0){
yPos = yPos + fieldsWidth
xPos = 0
}
}
}

那么让我向您解释一下我的代码。首先,我用图像创建一个 SKSpriteNode。之后有几个变量需要填充场景。所以我希望图像在 x 轴上出现 5 次,在 y 轴上出现 8 次。为了确保它们大小相同,它们是正方形。每次在 for 循环中,x 坐标都会高出屏幕的 1/5。每第 5 次循环,x 坐标会重置,y 坐标会升高屏幕的 1/8。总共应创建 40 个节点并将其添加到场景中。当我运行该程序时,由于未捕获的异常,我在 AppDelegate 中收到错误。它还说:试图添加一个已经有父节点的 SKNode。有没有办法将40个节点添加到场景中而不会出错?

最佳答案

您没有向您的场景添加很多节点,您尝试添加一个节点 40 次,这就是为什么第二次它的节点有一个父节点并且您得到错误。您需要在“for”中创建节点对象

关于swift - SpriteKit : Add Multiple SKSpriteNodes To The Scene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33553835/

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