Ios 斯威夫特,斯普林泰诺?

Ios 斯威夫特,斯普林泰诺?,ios,swift,Ios,Swift,我需要在框架上移动一个斜楔。我现在有这样一个问题,它在这样做时出现了小故障(丢失了几帧?不是很确定)。我需要的是,对象在没有固定方向x目标的情况下水平移动,这样,如果x因某种影响而偏移,对象就不会尝试返回其初始化的x坐标。 下面是这部分代码现在的样子: `spaceRock.physicsBody?.affectedByGravity = false spaceRock.physicsBody = SKPhysicsBody(texture: (spaceRock?.texture)!, si

我需要在框架上移动一个斜楔。我现在有这样一个问题,它在这样做时出现了小故障(丢失了几帧?不是很确定)。我需要的是,对象在没有固定方向x目标的情况下水平移动,这样,如果x因某种影响而偏移,对象就不会尝试返回其初始化的x坐标。 下面是这部分代码现在的样子:

`spaceRock.physicsBody?.affectedByGravity = false
spaceRock.physicsBody = SKPhysicsBody(texture: (spaceRock?.texture)!, 
size:(spaceRock.size))
spaceRock.zPosition = 1
spaceRock.position=CGPoint(x: xSpawnPosition, y: 
Double(self.size.height/2+(spaceRock.size.height)))
spaceRock.physicsBody!.isDynamic = true
spaceRock.physicsBody!.allowsRotation = true
spaceRock.physicsBody!.categoryBitMask = 00000001
spaceRock.physicsBody!.contactTestBitMask = 00000010
addChild(spaceRock)
spaceRock.physicsBody?.applyTorque(CGFloat(randTorque))
//spaceRock.run(SKAction.moveTo(y: -self.size.height-
spaceRock.size.height, duration: rockTravelTime))`
这条评论是我到目前为止一直在使用的


谢谢你的帮助

您正在混合物理模拟(SKPhysicsBody)和精灵的直接移动(SKAction.moveTo)-虽然您可以这样做以实现特殊效果,但通常它们会相互争斗并导致问题

如果你需要你的物体真实地移动,那么使用SKPhysicsBody并施加力(扭矩、推力等)来移动它。这将是相当复杂的程序,并有很大的处理开销


如果你喜欢直接移动精灵,那么就去掉SKPhysicsBody,你的moveTo应该可以正常工作。

你将物理模拟(SKPhysicsBody)和精灵的直接移动(SKAction.moveTo)混合在一起-尽管你可以这样做以获得特殊效果,总的来说,他们会互相争斗,造成问题

如果你需要你的物体真实地移动,那么使用SKPhysicsBody并施加力(扭矩、推力等)来移动它。这将是相当复杂的程序,并有很大的处理开销


如果你喜欢直接移动精灵,那么就去掉SKPhysicsBody,你的moveTo应该可以正常工作。

假设我取出了SKPhysicsBody,我如何测试两个节点之间的接触?@Ari你可以使用SKNode的intersects方法检查它们的帧是否重叠。这取决于你想要实现什么。物理可能是最好的方法,但是你也应该用物理来移动你的身体。比如说我把SKPhysicsBody拿出来,我该如何测试两个节点之间的接触?@Ari你可以用SKNode的intersects方法检查它们的帧是否重叠。这取决于你想要实现什么。物理也许是最好的方法,但是你也应该用物理来移动你的身体。