我正在尝试为Sprite节点创建一个物理主体,该Sprite节点仅适用于Sprite节点的轮廓。为此,我尝试使用edgeLoopFromRect。然而,当我尝试这个时,物理体不匹配精灵节点的位置。例如,精灵节点将位于屏幕的中心,其物理主体将位于屏幕的顶部角落(请参阅图片 - 物理主体的轮廓仅显示角落,因为某些屏幕不在屏幕中)。我想用这个来创建一个游戏区域的轮廓,这个区域将作为对象与游戏接触的边界。Swift,SpriteKit:使用edgeLoopFromRect时SpriteNode出错的物理体位置
这里是我的代码:
//Physic Body Outline Test
let screenS = SKSpriteNode(imageNamed: "TestImage")
screenS.size = CGSize(width: 100, height: 100)
screenS.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
screenS.physicsBody = SKPhysicsBody(edgeLoopFrom: screenS.frame)
screenS.physicsBody!.affectedByGravity = false
self.addChild(screenS)
为什么位置,使远吗?我究竟做错了什么?这甚至是为游戏区域设置物理大纲的正确方法吗?
谢谢! :D
您可以发布显示精灵和physicsBody的屏幕截图吗? –
“我想用它来创建一个游戏区域的轮廓,这个区域将作为对象接触的边界” - 你想让精灵的轮廓成为精灵接触的边界吗? Sprtes通常具有基于体积的物理机构;基于边缘的物体用于边界等,但通常使用场景的帧来停止精灵离开屏幕。 –