Sprite kit 物理体做';t与框架节点重合

Sprite kit 物理体做';t与框架节点重合,sprite-kit,skphysicsbody,Sprite Kit,Skphysicsbody,在我的节目中,我看到了大海和水滴,落在海里。当水滴接触到大海时就会消失。Sea是场景底部的SpriteNode,它的物理体必须与其框架一致。这就是对sea的描述: sea = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size:CGSizeMake(self.size.width, 100)]; sea.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMinY(

在我的节目中,我看到了大海和水滴,落在海里。当水滴接触到大海时就会消失。Sea是场景底部的SpriteNode,它的物理体必须与其框架一致。这就是对sea的描述:

sea = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size:CGSizeMake(self.size.width, 100)];
sea.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMinY(self.frame));
//sea.position = CGPointMake(CGRectGetMidX(self.frame),400);

[self addChild:sea];
CGPoint center = CGPointMake(CGRectGetMidX(sea.frame), CGRectGetMidY(sea.frame));
sea.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:sea.frame.size center:center];
sea.physicsBody.affectedByGravity = NO;
sea.physicsBody.categoryBitMask = CollisionCategorySea;
sea.physicsBody.collisionBitMask = 0;
sea.physicsBody.contactTestBitMask = CollisionCategoryDrop;
sea.zPosition = 2;
问题是,水滴和大海之间的接触只有在一段时间后才会发生,因为水滴在场景下消失了,就像物理出现在场景下的某个地方一样(但可视帧放置在场景底部)。如果取消对第三行的注释

 sea.position = CGPointMake(CGRectGetMidX(self.frame),400);
然后,可见帧将接近场景的中间,碰撞将位于底部。
此外,当我增加sea的y坐标时,可见体和物理体之间的空间会减小,当y接近700时,它们会重合。

启用物理调试绘图正确,错误在于水滴,而不是sea。我设置了错误的位置。