Question

I have nine SKSpriteNodes that fall down from the top to the bottom of a screen. Also i have SKView, and I can drag it over the screen. How can I detect collision of my SKView with one of the nine SKSpriteNodes dynamically ?

Was it helpful?

Solution

SKView doesn't have physicsBody property, so it cannot collide.

You can, however, manually check if SKView's frame intersects with SKSpriteNode's frame:

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

OTHER TIPS

In the scene, you can detect collision between the frame and the SKSpriteNodes.

In your Scene.m, add the code in the initWithSize:(CGSize)size:

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

and in - (void)didBeginContact:(SKPhysicsContact *)contact, you can detect the collision.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top