Reputation: 133
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 ?
Upvotes: 1
Views: 933
Reputation: 1569
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.
Upvotes: 0
Reputation: 32559
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) {
....
}
}
Upvotes: 2