设计圆形以外的物理实体

时间:2016-08-13 21:40:21

标签: swift sprite-kit skphysicsbody

我正在使用SpriteKit制作我的第一个游戏,并为我一直在使用的敌方外星人(SKSpriteNode子类)物理机构制作:

using <namespace>

到目前为止,大多数外星人都是圆形的。但是,如果我有椭圆形或方形外星人,那么设计物理机构的最佳方法是什么?我尝试了这个方形:

new

但我不知道这是否效率最高,也不知道如何精确制作省略号。任何建议都会很棒!

2 个答案:

答案 0 :(得分:2)

让SpriteKit为你绘制形状!

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

让我说我将这个精灵添加到我的场景

let croc = SKSpriteNode(imageNamed: "croc_walk01")
croc.position = CGPoint(x: frame.midX, y: frame.midY)
addChild(croc)

enter image description here

自动创建PhysicsBody形状

现在我只需添加此行

croc.physicsBody = SKPhysicsBody(texture: croc.texture!, size: croc.texture!.size())

SpriteKit会自动为我创建PhysicsBody。

enter image description here

你能看到精灵周围的直线吗?就是这样。让我隐藏精灵,以便你可以更好地看到它

croc.hidden = true 

enter image description here

答案 1 :(得分:1)

使用路径是创建复杂物理体的唯一方法,但是,您可以使用SKPhysicsBody创建矩形(rectangleOf:CGSize(宽度:100,高度:100))

编辑: 使用此选项可帮助您从图像创建有效路径:http://insyncapp.net/SKPhysicsBodyPathGenerator.html

注意:这只会生成图片的路径,您需要通过删除路径和连接点来清理自己。