尝试添加已具有父级的SKNode



请提供帮助。我正在和Swift 4玩游戏。我想做一个循环,当玩家下来时,在不同的高度创建随机的场地(和硬币一起(。但我收到了错误信息。

线程1:";试图添加一个已经有父节点的SKNode:名称:"(null("纹理:["coin1'(359 x 357(]位置:{8652030}比例:{1.00,1.00}大小:{100,100}锚点:{0.5,0.5}旋转:0.00";

class GameScene: SKScene...{ let platform = SKSpriteNode(imageNamed: "ground") let coin = SKSpriteNode(imageNamed: "coin1") let coin2 = SKSpriteNode(imageNamed: "coin2")
enum bitmasks: UInt32 {
case player = 0b1
case platform = 0b10
case coin

override func didMove(to view: SKView) { ... makePlatform() }
func makePlatform() { let platform = SKSpriteNode(imageNamed: "ground") platform.position = CGPoint(x: GKRandomDistribution(lowestValue: 0, highestValue: 800).nextInt(), y: GKRandomDistribution(lowestValue: 1200, highestValue: 1225).nextInt() - Int(player.position.y - 1000))
coin.position = CGPoint(x: platform.position.x + 80, y: platform.position.y + 80) coin.zPosition = 6 coin.setScale(1)
addChild(coin)
addChild(platform) }
func didBegin(_ contact: SKPhysicsContact) {
if contactA.categoryBitMask == bitmasks.platform.rawValue && contactB.categoryBitMask == bitmasks.cameraLine.rawValue {
contactA.node?.removeFromParent()
makePlatform()}

您在哪里创建coin?您能显示coin创建位置的代码吗?

当程序员不小心通过一个更新其位置并通过addChild添加的循环来添加同一个精灵,而不是在每个循环中创建一个新的精灵时,就会经常出现这个问题。

这能解决你的问题吗?:

https://stackoverflow.com/a/28407033/1430420

相关内容

  • 没有找到相关文章

最新更新