代码之家  ›  专栏  ›  技术社区  ›  Shakti

SKSpriteNode不在根场景中

  •  1
  • Shakti  · 技术社区  · 6 年前

    我添加了几个具有重复时间间隔的节点,但它们都不是自然下降的。我还添加了

    item!.physicsBody?.isDynamic = true

    item!.physicsBody?.affectedByGravity = true

    我正在打电话

    self.scene?.addChild(itemController.spawnItem()) 来自GamePlaySecene

    func spawnItem()-> SKSpriteNode{
            let item : SKSpriteNode?;
            if Int(randomBetweenNumbers(firstnum: 0, secondnum: 10)) >= 6{
                item = SKSpriteNode(imageNamed: "Bomb");
                item!.name = "Bomb";
                item!.setScale(0.6);
                item!.physicsBody = SKPhysicsBody(circleOfRadius: item!.size.height / 2);
            }
            else{
                let num = Int(randomBetweenNumbers(firstnum: 1, secondnum: 6));
                item = SKSpriteNode(imageNamed: "Fruit\(num)");
                item!.name = "Fruit";
                item!.setScale(0.7);
                item!.physicsBody = SKPhysicsBody(circleOfRadius: item!.size.height / 2);
            
            }
            
            item!.physicsBody?.categoryBitMask = ColliderType.FRUIT_AND_BOMB
           
            item!.zPosition = 3;
            item!.physicsBody?.isDynamic = true
            item!.physicsBody?.affectedByGravity = true
            item!.physicsBody?.isResting = false
            item!.anchorPoint = CGPoint(x: 0.5, y: 0.5)
            item!.position.x = randomBetweenNumbers(firstnum: minX, secondnum: maxX)
            item!.position.y = 400
            return item!;
        }
    
    1 回复  |  直到 4 年前
        1
  •  0
  •   Shakti    6 年前

    我的场景的重力属性y参数设置为0。所以所有被添加的节点都不会落到底层,所以改为-0.8对我来说很有用