首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >椭圆SKPhysicsBody

椭圆SKPhysicsBody
EN

Stack Overflow用户
提问于 2014-01-21 23:08:14
回答 2查看 1.3K关注 0票数 0

我应该使用哪种SKPhysicsBody体类型来创建椭圆physicsBody?

我知道我可以用直线做一条曲线,但它不是一个真正的椭圆,但似乎必须有某种方法来挤压一个圆或创建一个圆?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-21 23:22:53

创建一个椭圆CGPath并创建具有该路径的多边形体:

代码语言:javascript
复制
CGPathRef path = CGPathRef CGPathCreateWithEllipseInRect(someRect, nil);
SKPhysicsBody* body = [SKPhysicsBody bodyWithPolygonFromPath:path];

但是,创建的路径可以为椭圆创建超过16个顶点(内部限制)。在这种情况下,它将崩溃,您必须手动创建路径,确保它不超过16分。

如果身体不需要是动态的,你也可以使用bodyWithEdgeLoopFromPath:bodyWithEdgeChainFromPath: --两者都没有限制顶点的数量。

票数 3
EN

Stack Overflow用户

发布于 2014-01-21 23:37:05

由于Sprite Kit不接受带有椭圆CGPath的基于卷的物理体(它可以做圆圈、矩形或任何具有最多12个顶点的凸多边形),所以有两个选项:

  • 绘制一个接近椭圆的多边形,最多有12个顶点--您可以使用辅助工具,例如:http://dazchong.com/spritekit/
  • 想法:如果你需要一个圆周运动,滚动的行为,添加一个基于圆圈的物理体,然后添加一个子SKNode到你的精灵,并把它稍微偏移到侧面,然后添加一个更小的基于圆圈的物理体到那个子节点。现在你有两个圆形的物理体在一起。冲洗和重复在另一边-我想你可以接近某种云/椭圆形的形状,只有三个这样的圆圈彼此接近。或者你可以得到更好的结果,只要把圆形物体和一个固定的接头连接起来。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21270966

复制
相关文章

相似问题

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