Objective c CGRECT与对象坐标相交

Objective c CGRECT与对象坐标相交,objective-c,game-physics,cgpoint,Objective C,Game Physics,Cgpoint,我想问一下是否有类似于CGRectIntersectsRect的代码。 例如: 有一个对象和一个块。如果对象落在块的顶部,它可以留在块上。如果物体撞到块体的左侧、右侧或底部,它会撞到块体上并掉落。 我的代码: if(CGRectIntersectsRect(Object.frame, Block.frame)){ ObjectJump = 0; } 但是有了这个代码,即使对象从块的底部跳到顶部,它也会保持不变。有人能帮我吗?假设交叉点被反复检查,所以你知道在交叉点的起点,

我想问一下是否有类似于CGRectIntersectsRect的代码。 例如: 有一个对象和一个块。如果对象落在块的顶部,它可以留在块上。如果物体撞到块体的左侧、右侧或底部,它会撞到块体上并掉落。 我的代码:

   if(CGRectIntersectsRect(Object.frame, Block.frame)){
    ObjectJump = 0;
    }

但是有了这个代码,即使对象从块的底部跳到顶部,它也会保持不变。有人能帮我吗?

假设交叉点被反复检查,所以你知道在交叉点的起点,那么重要的是物体有多少在街区上方,多少在街区下方。如果上面>下面,那么它在上面


当前,您可以检查交叉点,但也可以获取帧的交叉点。一旦设置好,就可以比较相交帧和对象帧的高度。如果对象帧高度>2*交叉帧高度,则帧重叠不多。假设对象不可能已经在块内,这就足够了。如果对象撞到了块的侧面,则相交帧高度将与对象帧高度相同。

那么您要验证移动方向吗?或者交叉口的大小?街区是40x40。如果对象跳到块的顶部,它应该留在块上。如果物体撞到左/右/底侧,它会掉下来,无法停留。