【发布时间】:2012-07-02 02:07:36
【问题描述】:
我实例化一个精灵,然后当它与第二个精灵发生碰撞时,该精灵的子元素被删除:
if (CGRectIntersectsRect(spriteOne.boundingBox, self.swat.boundingBox))
{
if (spriteOne.tag == 0){
[self removeChild:spriteOne cleanup:YES];
}
if (spriteOne.tag == 1){
[self removeChild:spriteOne cleanup:YES];
}
}
这可以按照我的意愿进行,并且精灵会从屏幕上消失。但是,即使图像不存在,boundingBox 似乎仍然存在,这会导致评分等问题......所以,我想知道的是如何“禁用”精灵的 boundingBox 以便当两个精灵第一次碰撞时,会检测到碰撞,但之后的任何时候都不会。
提前致谢。
【问题讨论】:
-
“边界框还在那里”是如何表现出来的?你观察到什么错误?
-
好吧,当两个精灵碰撞时,我调用了一个方法,该方法将 +1 加到分数上。发生的情况是,它们第一次发生碰撞时,分数会增加 +1,并且第一个精灵消失了。但是,只要第二个精灵悬停在第一个精灵“死亡”的位置上,就会添加额外的点。
标签: ios cocos2d-iphone collision-detection ccsprite bounding-box