1
SKSpriteNode定位点设置为(0.5,0)。如何将SKPhysicsBody(texture:size :)居中在SKSpriteNode定位点以外的点
如何创建一个以(0.5,0.5)为中心的SKPhysicsBody(texture: size:)
而不改变(0.5,0)锚点的物理体。
SKSpriteNode定位点设置为(0.5,0)。如何将SKPhysicsBody(texture:size :)居中在SKSpriteNode定位点以外的点
如何创建一个以(0.5,0.5)为中心的SKPhysicsBody(texture: size:)
而不改变(0.5,0)锚点的物理体。
您可以使用+ bodyWithRectangleOfSize:center:或 + bodyWithCircleOfRadius:center:,像这样:
let sprite = SKSpriteNode(color: SKColor.whiteColor(), size: CGSize(width: 100.0, height: 100.0))
sprite.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMidY(frame))
sprite.anchorPoint = CGPoint(x: 0.5, y: 0.0)
sprite.physicsBody = SKPhysicsBody(rectangleOfSize: sprite.size, center: CGPoint(x: 0, y: sprite.size.height/2.0))
sprite.physicsBody?.affectedByGravity = false // just added for easier debugging
addChild(sprite)
中心参数表示所有的节点的坐标系中的方/圆的起源。
我需要使用SKPhysicsBody(texture:size :)来获得具有纹理形状但具有不同大小的物体。 – crvo84
@ crvo84啊,好吧...那么,改变节点的定位点的原因是什么?你不能把它留作(0.5,0.5)并相应地改变节点的位置吗? – Whirlwind
关于anchorPoint&physicsBody的一篇有用的文章。 http://stackoverflow.com/a/22095999/3402095 – Whirlwind