我第一次用SpriteKit和敌人外星人(SKSpriteNode子类)玩物理身体,我一直在使用:
self.physicsBody = SKPhysicsBody(circleOfRadius: self.size.width/2)
到目前为止,大多数外星人都是圆形的。然而,如果我有椭圆或方形外星人,那么设计他们的物理体最好的方法是什么?我试过这个形状是方形的:
let squarePath = UIBezierPath(rect: CGRect(x: -64, y: -64, width: 128, height: 128))
self.physicsBody = SKPhysicsBody(polygonFromPath: squarePath.CGPath)但我不知道这是否是最有效的,也不知道如何准确地制造椭圆。任何建议都会很好!
发布于 2016-08-13 22:20:36
使用路径是创建复杂物理体的唯一方法,但是,您可以使用SKPhysicsBody创建矩形(rectangleOf:CGSize(宽度: 100,高度: 100))
编辑:使用它帮助从图像创建有效的路径:http://insyncapp.net/SKPhysicsBodyPathGenerator.html
注意:这只会产生图像的路径,你需要通过删除路径和连接点来清理自己。
发布于 2016-08-14 00:46:25
让SpriteKit为你画形状吧!
如果你有一个精灵,你需要为它创建一个PhysicsBody,就让SpriteKit为你做吧。SpriteKit可以分析纹理,找到边界(使用alpha/透明通道),并最终创建与图像匹配的物理体。
假设我把这个精灵添加到我的场景中
let croc = SKSpriteNode(imageNamed: "croc_walk01")
croc.position = CGPoint(x: frame.midX, y: frame.midY)
addChild(croc)

自动创建PhysicsBody形状
现在,我简单地添加这一行
croc.physicsBody = SKPhysicsBody(texture: croc.texture!, size: croc.texture!.size())SpriteKit会自动为我创建PhysicsBody。

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

https://stackoverflow.com/questions/38937242
复制相似问题