문제

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 ?

도움이 되었습니까?

해결책

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) {
        ....
    }
}

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top