用线检测碰撞,俄罗斯方块就像游戏一样

时间:2014-07-31 09:32:59

标签: ios swift sprite-kit

我正在玩像俄罗斯方块的游戏。有些物体从屏幕的顶部到底部掉落。当一堆物体到达该线时,游戏就结束了 我试图设置一个布尔值来检测对象在游戏结束的时间内传递2次的时间,但它不能那样工作,所以我真的不知道该怎么做。
也许我们可以检测到物体是否在线上超过2秒? 感谢

enter image description here

修改

为了简化问题,我把屏幕顶部的行(self.frame.height),我在这条线下产生了对象,所以在游戏结束之前它们永远不会越过线。

现在的问题是我必须在线下方40像素处生成对象,否则在生成点处检测到碰撞。 (如果我设置usesPreciseCollisionDetection = true,它什么都不做。)

那么40像素的碰撞检测是否正常?

enter image description here

1 个答案:

答案 0 :(得分:0)

为什么物品会通过该线2次?物品总是向下移动。所以真的,一旦一个项目超过了这一行,你知道它永远不会超越(嗯,好吧,那不是真的 - 因为你可以旋转一个项目,你可以得到一个长一个水平,然后将其旋转到垂直...俄罗斯方块物品水平出来?)。

所以真的,你的测试会更多"它是否永远不会完全跨越线路#34;。例如。如果你知道一个项目以速度X移动,你可能只计算从顶部移动到该线所需的时间,然后等待那么长,然后看它是否仍然与该线上方的顶部区域相交。如果是这样,游戏就会丢失。

或者,您可以在项目停留在另一个项目上时设置标记。如果设置了该标志,该项仍然与该线上方的区域相交,则游戏将丢失。

PS - 请记住,俄罗斯方块是一个品牌名称。一定要为你的游戏命名别的东西。 : - )