0
时,我该如何使框架变小?我有两个图像:球和障碍物。如果球碰到障碍物,那就是比赛结束了。当我打电话给CGRectIntersectsRect
但是因为我的障碍物和球没有被塑造成一个矩形,所以它看起来像是在他们互相撞击之前的比赛。我明白他们的框架实际上确实打了对方。但在游戏中,我的游戏转移功能在它看起来像我的球和障碍物相交之前被调用。
希望能够找到一些帮助,这样我可以让我的两个图像真的看起来像他们在我的gameover函数被调用之前碰到对方。
if CGRectIntersectsRect(ball.frame, obstacle.frame) {
gameOver()
}
可以插页的矩形使其变小。 https://developer.apple.com/reference/coregraphics/1454218-cgrectinset –
这对我来说是有道理的,但我无法让它起作用。也许我实施错了?在我的if语句之前,我声明了新的矩形: CGRectInset(obstacle.frame,2000,2000)。 @JoshHomann这是不正确的? – Frederic
这是正确的,但2000,2000似乎非常大,非常随意。例如用一个球而不是使用包含该圆的矩形,我会使用足够小的矩形来包含圆。简单的三角告诉你,高度和宽度应该是sqrt(2)/ 2或0.707乘以外部矩(sin(45)* radius * 2),所以让collisionFrame = CGRectInset(ball.frame,(1-0.707)* ball .frame.size.width,(1-0.707)* ball.frame.size.height) –