ios - SpriteKit 边框除底部外的所有边

标签 ios objective-c sprite-kit

我如何为屏幕创建一个边框,它会在除底部以外的周围创建一个边框。

我正在尝试 bodyWithEdgeLoopF​​romRect 但它在四周创建了一个边框,包括底部。 (这是我唯一不想被镶边的部分)

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

我也试过 bodyWithEdgeFromPoint: toPoint 但还是想不通。

我也尝试了 bodyWithPolygonFromPath 但我不太顺利。有什么建议吗?除了制作将放置在每个边界上的 3 个节点之外?上、左、右……

最佳答案

您可以通过调整用于 bodyWithEdgeLoopF​​romRect 的矩形的大小来创建看似无底的边框边缘主体:

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

现在矩形的底部在屏幕底部边缘以下 400 点,因此如果您想要的话,您的物理实体会从地板上掉下来。根据需要进行调整(例如,添加方法在节点低于底部边缘时移除节点)。

关于ios - SpriteKit 边框除底部外的所有边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21459945/

相关文章:

swift - 如何围绕 Sprite 节点分配 SKPhysicsBody,使其完美环绕对象框架

ios - 旋转 MKAnnotationView 的显示图像

ios - UIScrollViewDelegate 函数未调用

ios - 线程 1 : Signal sigabrt. 不知道如何解决这个问题

iOS:不同的调试和发布常量,objective-c

ios - .svg URL 到 UIImage iOS

ios - xcode 中的多个目标导致内存管理的差异

ios - 如何使用 SKEmitterNode 效果像 SKShapeNode 一样绘制?

ios - 你如何在 Xcode 中使用 Flutter Flavors

ios - 具有 Firebase 消息传递和 Firebase 动态链接的 Cordova Ionic 项目