我正试图在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的方法,因为游戏中没有其他物理。
我在这里缺少什么?
答案 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
}