objective-c - 屏蔽节点的语法

标签 objective-c swift autolayout

我正在尝试在场景中的节点周围获得直接碰撞接触框。我希望它的碰撞检测恰好围绕节点本身,而不是矩形或圆形。

苹果开发者手册在 Objective-C 中给出了这段代码

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
sprite.physicsBody = [SKPhysicsBody bodyWithTexture:sprite.texture size:sprite.texture.size];

我在 Swift 中尝试过这个

invisinode.physicsBody = SKPhysicsBody(edgeChainFromPath: invisinode.size)

但是没有效果。使碰撞盒直接位于 invisinode 周围的正确语法是什么?

最佳答案

这个答案将以 Swift 形式提供,您的问题被标记为两者,所以我不确定这是否是您正在寻找的内容。

如果您希望您的 SKSpriteNode 与您提供的纹理大小相同,那么您可以将物理体设置为相同大小,并以节点为中心:

var skspriteTexture = SKTexture(imageNamed: "Spaceship")

var skspriteNode = SKSpriteNode(texture: skspriteTexture, size: skspriteTexture.size())
skspriteNode.physicsBody = SKPhysicsBody(circleOfRadius: skspriteNode.size.width / 2)

关于objective-c - 屏蔽节点的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31195495/

相关文章:

objective-c - 如何在不共享 cookie 的情况下拥有多个 webkit 实例?

ios - iPad Pro 的平台字符串

swift - 在 swift 中解析 float 时出现问题?

子类中的 Swift 约束

ios - 在状态栏下方获取自动布局

iOS - 具有约束优先级和抗压缩性的自动布局问题

iphone - 如何释放具有相同委托(delegate)的几个类?

objective-c - 设备上的 Xcode 6 编译错误

c - 如何从 UnsafeMutableRawPointer 获取页对齐地址?

ios - 同时使用 TableFooterView 和行操作时 TableView 分隔符的奇怪行为