【问题标题】:CGRectIntersectsRect with coordinates of objectCGRectIntersectsRect 与对象的坐标
【发布时间】:2014-03-28 12:17:01
【问题描述】:

想问问有没有类似Code CGRectIntersectsRect的东西。 例如: 有一个对象,一个块。如果物体落在方块的顶部,它可以停留在上面。如果物体撞到积木的左侧、右侧或底部,它应该撞到积木上并摔倒。 我的代码:

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

但是使用该代码,即使他从块的底部跳到顶部,对象也会保持不变。有人可以帮我吗?

【问题讨论】:

  • 所以要验证运动方向?还是路口的大小?
  • 块是 40x40。如果对象跳到块的顶部,它应该停留在上面。如果物体撞到左/右/下侧,它应该会掉下来,不能停留。

标签: objective-c game-physics cgpoint


【解决方案1】:

假设交叉点被反复检查,所以你知道在交叉点的开始,那么重要的是对象的上方有多少,下方有多少。如果在上面 > 在下面,那么它在上面。

目前您检查交叉点,但您也可以获取框架的交叉点。一旦你有了,你可以比较相交框架和对象框架的高度。如果对象框架高度 > 2 * 相交框架高度,则框架不会重叠太多。假设对象不能在块内,这是足够的信息。如果对象撞到块的一侧,则相交框高度将与对象框高度相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2018-08-06
    相关资源
    最近更新 更多