将一个球放入一个被困在里面的矩形,有一定的速度和恢复原状

时间:2015-12-12 11:55:59

标签: ios swift swift2 skshapenode

在这个场景中:

let rectangle = SKShapeNode(rectangleOfSize: CGSize(300, 400))
rectangle.fillColor = UIColor.clearColor()
rectangle.strokeColor = UIColor.grayColor()
rectangle.strokeWidth = 10
self.addChild(rectangle)

我想把一个球放在这个矩形里面,被困在里面,有一些速度和恢复力,当它与其中一个墙碰撞时,它会反弹并改变矢量方向。

1 个答案:

答案 0 :(得分:0)

我不能100%确定你是否可以使用SKShapeNodes和物理实体,因为物理主体将应用于整个形状节点(带中心)。

由于你想让矩形可见,你可以制作一个带有4个SKSpriteNodes边的SKSpriteNode子类,而不是将它们塑造成一个矩形。

或者你可以在你选择的程序中绘制一个矩形边框,只要确保中心基本没有,然后导出为PNG。而不仅仅是用图像创建一个SKSpriteNode。

  let rectangle = SKSpriteNode(imageNamed: "Rectangle")
  let texture = SKTexture(imageNamed: "Rectangle")
  rectangle.physicsBody = SKPhysicsBody(texture: texture, size: texture.size())
  rectangle.physicsBody?.collisionBitMask = 1

现在,如果你已经正确地绘制了矩形,那么由于你没有绘制一个中心,所以在四边只有一个物理体。

比你简单地创建你的球并给它一个像上面这样的物理体,使用相同的碰撞bitMask。将它放在矩形的中心,给它一个冲动或什么的。它应该按照您的意愿反弹而不离开矩形。

如果您对物理实体不确定,而不是需要阅读它,例如 http://www.techotopia.com/index.php/A_Swift_iOS_8_Sprite_Kit_Collision_Handling_Tutorial