2015-12-11 54 views
1

我有,我已经确定这两个self.size及其各自的物理体的大小是相同的两个精灵节点,但我仍然得到一个非常奇怪的现象是这样的:Odd behaviourdidBeginContact()接触之前调用发生

照片是在检测到碰撞时拍摄的,我暂停了现场。为什么会发生?

这里是设置大小不同的代码: 在我的播放器类(圆形节点)的init()

super.init(texture: texture, color: color, size: CGSize(width: 100, height: 100)) 

则:

self.physicsBody = SKPhysicsBody(circleOfRadius: self.size.width/2, center: self.position) 
+0

在图像编辑器中打开图像时,图像的真实大小是多少? – Whirlwind

+0

问题原来是当我在didMoveToView()中初始化一个对象时指定属性= player.size.width/2。不管怎样,谢谢你! – ecoguy

回答

1

打开物理视觉表现在你GameViewController.swift ,如下所示:

skView.showsPhysics = true 

self.size你的情况可能指的是现场。你需要做的是设置物理身体的尺寸是这样的:

yourNode.physicsBody = SKPhysicsBody(rectangleOfSize: yourNode.size) 

也请记住,如果你正在改变节点的定位点,你可能最终得到意想不到的效果。定位点定义了相对于节点绘制纹理的方式。它对节点的物理体没有影响。

+0

感谢.showsPhysics方法。真的帮助找到问题。我的问题似乎是圆形节点的物理体太大了。我将使用我使用的代码进行更新。 – ecoguy

相关问题