2015-06-23 57 views
2

https://github.com/lemubru/zombie --link到Xcode项目Swift SpriteKit静态节点在旋转吗?

我创造我的比赛地板,并添加敌方士兵spritenodes,我也从一个枪射击spritenode子弹。

玩了大约1分钟的游戏后,地板似乎开始旋转并击中了所有其他节点。

floor.position = CGPointMake(size.width/2,size.height/2 - 130) 
    floor.name = "floor" //add reference to the button. 
    floor.zPosition = 1 
    addChild(floor) 

    floor.physicsBody = SKPhysicsBody(texture: floor.texture, size: floor.size) 
    floor.physicsBody?.dynamic = false 
    floor.physicsBody?.affectedByGravity = false 
    floor.physicsBody?.allowsRotation = false 
    floor.physicsBody?.usesPreciseCollisionDetection = true 
+0

尝试打开调试物理,以查看发生这种情况时物理实体的外观。 –

回答

0

有时会发生这种情况,当您的地板瓦节点重叠并且另一个物理机构正在对其施加力时。确保你的瓷砖不重叠,并运行一些更多的测试。

在附注中,您不应该为地板使用PreciseCollisionDetection,因为它会产生额外开销。而是将其用于子弹等快速移动的节点。

+0

谢谢你的回答,地板砖绝对不重叠。我不断在地板上产卵敌人,并不断地在地板上射出子弹,以便跳入敌人士兵节点:意义在地板上碰撞很多,这只是一个错误吗? –

+0

@FrankduPlessis - 碰撞次数应该对静态瓷砖移动没有影响。我建议你仔细检查一下是否确实没有重叠。如果是这种情况,您可以尝试使用SKConstraint将节点锁定到位。 https://developer.apple.com/library/prerelease/mac/documentation/SpriteKit/Reference/SKConstraint_Ref/index.html – sangony

相关问题