Ios 把一个球放在一个被困在里面的矩形内,以一定的速度和恢复力

Ios 把一个球放在一个被困在里面的矩形内,以一定的速度和恢复力,ios,swift,swift2,skshapenode,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) 我想在这个矩形内放置一个球,它被困在里面,具有一定的速度和恢复力,当与其中一堵

在这个场景中:

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

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

我不能100%确定是否可以用SKShapeNodes和物理体来实现这一点,因为物理体将应用于整个形状节点(带中心).

由于要使矩形可见,您可以创建一个具有4条SKSpriteNode边的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
现在,如果你已经正确地绘制了矩形,它将只在4条边上有一个物理体,因为你没有绘制中心

然后你简单地创建你的球,给它一个像上面一样的物理体,使用相同的碰撞位掩码。把它放在长方形的中心,给它一个脉冲或者别的什么。它应该在不离开矩形的情况下按您的意愿反弹

如果你对物理体不确定,你需要读一些关于它的书,例如

谢谢你的批改。出于好奇,你最后用了什么,一张图片还是4个SKSpriteNodes?因为我正在为我的项目做类似的事情,现在画矩形似乎不再有效了,它不断地把球推出去。我记不清我是怎么做的。笑死我了。