0

我正在制作一个 cocos2d 游戏,我需要一个 140x140 的球形精灵,但我希望它的边界框大小只有 70x70,这样只有球的中心会发生碰撞。如果在创建精灵后尝试编辑边界框的大小,但看起来边界框属性不可分配。我也尝试在构造函数中使用指定矩形,initWithFile:rect:但随后精灵被切割,只绘制了碰撞部分,我希望绘制整个精灵,但只是它的中心对碰撞做出反应。是否可以通过边界框来做到这一点,或者这个属性是否直接绑定到绘制的精灵的大小?

4

1 回答 1

0

当您想测试碰撞时,您可以创建一个临时边界框:

CGRect tempBoundingBox = CGRectInset(ball.boundingxBox, ball.boundingBox.width / 4, ball.boundingBox.height / 4);

if (CGRectContainsRect(tempBoundingBox, otherSprite.boundingBox) {
    // Do collision stuff here
}

CGRectInset矩形大小减小给定的增量宽度和增量高度,同时保持其中心点与原始点相同。(查看此处了解更多详情)。

在上述情况下,它将围绕球精灵的中心点创建一个大小为原始矩形一半的边界框

于 2013-09-08T13:34:00.223 回答