SpriteKit边界除了底部以外的所有边

时间:2014-01-30 15:01:23

标签: ios objective-c sprite-kit

如何为屏幕创建边框,除了底部之外,它将创建边框。

我正在尝试bodyWithEdgeLoopFromRect,但它会创建一个包围底部的边框。 (这是我不想接受的唯一部分)

SKPhysicsBody *borders = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
self.physicsBody = borders;
self.physicsBody.friction = 0.f;

我也试过bodyWithEdgeFromPoint: toPoint,但仍然无法弄明白。

我也试过bodyWithPolygonFromPath,但我的表现并不太好。有什么建议吗?除了将3个节点放置在每个边界上之外?顶部,左侧,右侧......

1 个答案:

答案 0 :(得分:4)

您可以通过调整用于bodyWithEdgeLoopFromRect的矩形来创建看似无底的边框边体:

float bottomOffset = 400.0;
CGRect newFrame = CGRectMake(0, -bottomOffset, self.frame.size.width, self.frame.size.height+bottomOffset);
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:newFrame];

现在,矩形的底部位于屏幕底部边缘下方400点处,因此您的物理机构将落在地板上,如果这就是您所追求的。根据需要进行调整(例如,添加删除节点位于底边下方的方法)。