如果只有精灵的下半部分很重要,那么如何检查碰撞(想想带有茎的樱桃)

时间:2015-06-07 00:55:22

标签: swift sprite collision rect

我正试图在Swift中使用SpriteKit组合游戏。

我有一个移动的精灵,它是一个宽度为(sprite.frame.size.width)的矩形,高度为 2 *(sprite.frame.size.width)

我只想检查下半部分的碰撞,这是一个宽度(sprite.frame.size.width)和高度(sprite.frame.size.width)< /强>

我设置 sprite.anchorPoint = CGPointMake(0.5,0.25)并使用方法 CGRectIntersectsRect 来检查与另一个精灵的碰撞。但这不起作用。碰撞区域仍然是第一个矩形。

我不想使用调用physicsBody的方法,因为游戏中没有其他物理。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我实际上找到了这个 UIEdgeInsets 函数,它可用于缩小帧。如果spriteB是有问题的精灵,那么不要像这样测试:

if CGRectIntersectsRect(spriteA.frame, spriteB.frame) { // something happens }

只是插入 spriteB下半部分的边缘,如下所示:

if CGRectIntersectsRect(spriteA.frame, UIEdgeInsetsInsetRect(spriteB.frame, UIEdgeInsetsMake(spriteB.frame.height/2 , 0 , 0 , 0))) { // something happens }