gpt4 book ai didi

swift - 尝试添加一个已经有父节点的 SKNode - Swift

转载 作者:行者123 更新时间:2023-11-30 10:21:40 24 4
gpt4 key购买 nike

好的。这段代码让我发疯。它就是行不通。我收到的唯一消息是“尝试添加已经有父节点的 SKNode”。是的,我知道这里已经有一些讨论,但没有一个给出我需要的解决方案。

这是代码。我真的很感谢任何帮助。

import SpriteKit

class MyScene: SKScene {

let intervalShapeCreation:NSTimeInterval = 2.0 // Interval for creating the next Shape
let gravitationalAcceleration:CGFloat = -0.5 // The gravitational Y acceleration

let shapeSequenceAction = SKAction.sequence([
SKAction.scaleTo(1.0, duration: 0.5),
SKAction.waitForDuration(2.0),
SKAction.scaleTo(0, duration: 0.5),
SKAction.removeFromParent()
])

override init(size: CGSize) {
super.init(size: size)
}

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}

override func didMoveToView(view: SKView) {
super.didMoveToView(view)
addBackground()
initializeScene()
}

// MARK: Level Building
func initializeScene() {
self.physicsWorld.gravity = CGVectorMake(0.0, gravitationalAcceleration)
runAction(SKAction.repeatActionForever(
SKAction.sequence([SKAction.runBlock(self.createShape),
SKAction.waitForDuration(intervalShapeCreation)])))
}

func addBackground() {
let backgroundAtlas = SKTextureAtlas(named: "background")
let background = SKSpriteNode(texture: backgroundAtlas.textureNamed("background"))
background.position = CGPoint(x: size.width/2, y: size.height/2)
background.anchorPoint = CGPointMake(0.5, 0.5)
background.zPosition = -1
background.name = "background"
self.addChild(background)
}

func createShape() {
let newShape = sSharedAllPossibleShapes[0]
print("\n shape creada: \(newShape.name)")
newShape.position = CGPointMake(size.width / 2, CGFloat( Int.random(fromZeroToMax: 500)))
self.addChild(newShape)
newShape.runAction(shapeSequenceAction)
}

}

最佳答案

createShape 实际上并不创建 SKShapeNode。它从 sSharedAllPossibleShapes 数组中获取第一个形状,然后将其作为子元素添加到 self 中。第二次调用此方法时,形状已经有了父级,无法再次添加。

您必须创建 SKShapeNode 的新实例。在我看来,这里的数组确实需要包含定义形状的 CGPath 对象,而不是节点本身,因为您无法按照预期的方式重用节点。

关于swift - 尝试添加一个已经有父节点的 SKNode - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26188438/

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