【问题标题】:Trying to hide a node after contact was made联系后试图隐藏节点
【发布时间】:2015-02-09 20:04:09
【问题描述】:

我有一个 SKSprite 节点,我想让它在联系后消失。我试图设置 .hidden = true 但这不起作用

var coin = SKSpriteNode()
//MARK: SKPhysicsContactDelegate methods

func didBeginContact(contact: SKPhysicsContact) {

    if (contact.bodyA.categoryBitMask == userCategory) && (contact.bodyB.categoryBitMask == objectCategory) {

        gameOver = 1
        movingObjects.speed = 0
        presentGameOverView()

    } else if (contact.bodyA.categoryBitMask == userCategory) && (contact.bodyB.categoryBitMask == coinCategory) {

        println("scoring")
        //code to hide node
        coin.hidden = true //not working

    }
}

}

【问题讨论】:

  • 我看不到您将 hidden 属性设置为 true 的位置。您也可以发布该代码吗?
  • @Andriko13 那里。谢谢!
  • 您是否能够记录“评分”,以便知道您的故障代码实际上正在运行。
  • 是的,我可以记录它@meisenman
  • 您可能应该通过将其中一个contact.bodies 转换为spritenode 并以这种方式隐藏它来访问硬币。否则,您可以简单地取出硬币。

标签: iphone swift ios8 sprite-kit


【解决方案1】:

SKPhysicsBody 有一个名为node 的属性。这可以在didContactBegin 函数中访问以隐藏node

func didBeginContact(contact: SKPhysicsContact) {

    if (contact.bodyA.categoryBitMask == userCategory) && (contact.bodyB.categoryBitMask == coinCategory) {

        println("scoring")
        //code to hide node
        contact.bodyB.node?.hidden = true // Changed

    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    • 2013-02-18
    相关资源
    最近更新 更多