Ios 用线检测碰撞,类似俄罗斯方块的游戏

Ios 用线检测碰撞,类似俄罗斯方块的游戏,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我在玩俄罗斯方块之类的游戏。有一些物体从屏幕的顶部落到底部。当一堆物体到达终点线时,游戏结束。 我试图设置一个布尔值来检测对象何时在游戏结束时通过2次,但它不是这样工作的,所以我真的不知道如何做到这一点。 也许我们可以检测到物体是否在线上停留超过2秒? 谢谢 编辑: 为了简化这个问题,我在屏幕的顶部画了一条线(self.frame.height),然后在这条线下生成了对象,这样在游戏结束之前它们就不会越过这条线 现在的问题是,我必须在线下40像素处生成对象,否则会在生成点检测到碰撞。(如果我设

我在玩俄罗斯方块之类的游戏。有一些物体从屏幕的顶部落到底部。当一堆物体到达终点线时,游戏结束。
我试图设置一个布尔值来检测对象何时在游戏结束时通过2次,但它不是这样工作的,所以我真的不知道如何做到这一点。
也许我们可以检测到物体是否在线上停留超过2秒?
谢谢

编辑:

为了简化这个问题,我在屏幕的顶部画了一条线(self.frame.height),然后在这条线下生成了对象,这样在游戏结束之前它们就不会越过这条线

现在的问题是,我必须在线下40像素处生成对象,否则会在生成点检测到碰撞。(如果我设置usesPreciseCollisionDetection=true,则不会执行任何操作)

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


为什么项目要通过两次行?物品总是向下移动。所以说真的,一旦一个项目超过了行,你就知道它永远不会超过行(好吧,那不是真的——因为你可以旋转一个项目,你可以水平旋转一个长项目,然后垂直旋转它……俄罗斯方块项目水平出来吗?)

所以说真的,你的测试更像是“它永远不会完全越界”。例如,如果您知道某个项目以X的速度移动,您可能只需计算从顶部移动到线上方所需的时间,然后等待那么长时间,然后查看它是否仍与线上方的顶部区域相交。如果是这样,游戏就输了

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


PS-请记住,俄罗斯方块是一个品牌名称。请务必为您的游戏命名其他名称。:-)

您可以测试一个项目是否与线条接触,并且其physicsBody的REST属性为“是”。我尝试过,但无法使用physicsBody.resting,因为某些项目是圆形的,并且不断移动。请为平铺对象创建布尔属性。当它接触到另一个对象时,将此布尔设置为“是”。如果一个BOOL yes对象触线,游戏结束。好吧,这是一个好主意,但在我的游戏中,有几个项目从顶部掉落,这些项目从一开始就可能相互碰撞。如果一个节点的physicsBody.velocity小于一个小数,并且它触线如何?