首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计非圆物理体

设计非圆物理体
EN

Stack Overflow用户
提问于 2016-08-13 21:40:20
回答 2查看 181关注 0票数 4

我第一次用SpriteKit和敌人外星人(SKSpriteNode子类)玩物理身体,我一直在使用:

self.physicsBody = SKPhysicsBody(circleOfRadius: self.size.width/2)

到目前为止,大多数外星人都是圆形的。然而,如果我有椭圆或方形外星人,那么设计他们的物理体最好的方法是什么?我试过这个形状是方形的:

代码语言:javascript
运行
复制
let squarePath = UIBezierPath(rect: CGRect(x: -64, y: -64, width: 128, height: 128))
self.physicsBody = SKPhysicsBody(polygonFromPath: squarePath.CGPath)

但我不知道这是否是最有效的,也不知道如何准确地制造椭圆。任何建议都会很好!

EN

Stack Overflow用户

发布于 2016-08-14 00:46:25

让SpriteKit为你画形状吧!

如果你有一个精灵,你需要为它创建一个PhysicsBody,就让SpriteKit为你做吧。SpriteKit可以分析纹理,找到边界(使用alpha/透明通道),并最终创建与图像匹配的物理体。

假设我把这个精灵添加到我的场景中

代码语言:javascript
运行
复制
let croc = SKSpriteNode(imageNamed: "croc_walk01")
croc.position = CGPoint(x: frame.midX, y: frame.midY)
addChild(croc)

自动创建PhysicsBody形状

现在,我简单地添加这一行

代码语言:javascript
运行
复制
croc.physicsBody = SKPhysicsBody(texture: croc.texture!, size: croc.texture!.size())

SpriteKit会自动为我创建PhysicsBody。

你能看到雪碧周围的线吗?就这样。让我把雪碧藏起来让你看得更清楚

代码语言:javascript
运行
复制
croc.hidden = true 

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38937242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档