物理不检测碰撞
Physics not Detecting Collision
我只是在场景中放置了一个方形节点,并将场景的 physicsBody 设置为屏幕的边缘。我打开了物理视图,所以你可以看到所有的物理东西。正方形周围有一个物理体,场景的边界也是如此。但是,当正方形进入边界时,什么也没有发生。广场直接穿过。以下是我如何初始化正方形:
let rect1 = CGRect(x: 100, y: 100, width: 50, height: 50)
let square = Square(rect: rect1)
square.fillColor = UIColor.blackColor()
square.zPosition = 200
square.physicsBody = SKPhysicsBody(edgeLoopFromRect: rect1)
square.physicsBody?.allowsRotation = false
square.physicsBody?.affectedByGravity = false
square.physicsBody?.restitution = 0.4
self.addChild(square)
下面是我如何为场景初始化物理体:
let physicsBody = SKPhysicsBody(edgeLoopFromRect: view.bounds)
self.physicsBody = physicsBody
我在其他游戏中使用了非常相似的代码,所以我不确定为什么没有发生碰撞。非常感谢任何帮助!
球的移动必须是由物理引起的,而不仅仅是设置位置。通过使用脉冲移动球然后使它们与各种物体碰撞来解决这个问题。
我只是在场景中放置了一个方形节点,并将场景的 physicsBody 设置为屏幕的边缘。我打开了物理视图,所以你可以看到所有的物理东西。正方形周围有一个物理体,场景的边界也是如此。但是,当正方形进入边界时,什么也没有发生。广场直接穿过。以下是我如何初始化正方形:
let rect1 = CGRect(x: 100, y: 100, width: 50, height: 50)
let square = Square(rect: rect1)
square.fillColor = UIColor.blackColor()
square.zPosition = 200
square.physicsBody = SKPhysicsBody(edgeLoopFromRect: rect1)
square.physicsBody?.allowsRotation = false
square.physicsBody?.affectedByGravity = false
square.physicsBody?.restitution = 0.4
self.addChild(square)
下面是我如何为场景初始化物理体:
let physicsBody = SKPhysicsBody(edgeLoopFromRect: view.bounds)
self.physicsBody = physicsBody
我在其他游戏中使用了非常相似的代码,所以我不确定为什么没有发生碰撞。非常感谢任何帮助!
球的移动必须是由物理引起的,而不仅仅是设置位置。通过使用脉冲移动球然后使它们与各种物体碰撞来解决这个问题。