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