如何在cocos2d中更改边界框大小

时间:2013-09-08 10:07:42

标签: objective-c cocos2d-iphone

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

1 个答案:

答案 0 :(得分:0)

如果要测试碰撞,可以创建临时边界框:

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

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

CGRectInset将您的矩形大小减小给定的delta宽度和delta高度,同时保持其中心点与原始中心点相同。 (有关详细信息,请查看here。)

在上面的例子中,它将创建一个围绕球精灵中心点的原始矩形大小一半的边界框