【问题标题】:How to detect collision between SKSpriteNode and SKView SpriteKit如何检测 SKSpriteNode 和 SKView SpriteKit 之间的冲突
【发布时间】:2014-05-31 13:26:18
【问题描述】:

我有九个SKSpriteNodes 从屏幕的顶部落到底部。我也有SKView,我可以把它拖到屏幕上。如何动态检测我的SKView 与九个SKSpriteNodes 之一的冲突?

【问题讨论】:

    标签: ios sprite-kit collision skspritenode skview


    【解决方案1】:

    SKView 没有physicsBody 属性,所以它不能碰撞。

    但是,您可以手动检查 SKViewframe 是否与 SKSpriteNode 的框架相交:

    - (void)update:(CFTimeInterval)currentTime {
        if (CGRectIntersectsRect(skView.frame, node.frame) {
            ....
        }
    }
    

    【讨论】:

      【解决方案2】:

      在场景中,您可以检测框架与 SKSpriteNodes 之间的碰撞。

      在您的 Scene.m 中,添加 initWithSize:(CGSize)size 中的代码:

      self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
      self.physicsBody.categoryBitMask = kSceneCategory;
      self.physicsBody.contactTestBitMask = kSKNodeCategory; // this is your SKSpriteNode's categoryBitMask
      

      - (void)didBeginContact:(SKPhysicsContact *)contact,你可以检测到碰撞。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-09
        相关资源
        最近更新 更多