相交时如何只添加1个值?

时间:2014-03-04 11:55:13

标签: ios cocos2d-iphone intersection

 if(CGRectIntersectsRect(m_Heart, m_sBirdSprite.boundingBox)){
            m_sHeart[i].visible=FALSE;
            m_fTime += 1;
        }

这是我的代码,问题是我想在m_fTime变量中只添加一个值,但是它在m_fTime变量中不断添加+1,因为它正在进行交叉,现在有什么方法可以添加它相交时只有1个值吗?

3 个答案:

答案 0 :(得分:2)

您可以使用 BOOL porperty

if(CGRectIntersectsRect(m_Heart, m_sBirdSprite.boundingBox) && [m_sHeart[i] isVisible]){
     m_sHeart[i].visible=FALSE;
     m_fTime += 1;
}

答案 1 :(得分:1)

感谢您的回答@Himanshu Joshi在逻辑方面的正确性,但在语法方面有点不正确我尝试了相同的,我没有指出你的语法错误,只是为我们的新/初学者朋友提供正确的语法。我正在将你的问题标记为正确答案。

if(CGRectIntersectsRect(m_sHearts, m_sBirdSprite.boundingBox) && m_sHeart[i].visible==TRUE){
        m_sHeart[i].visible=FALSE;
        m_fTime += 1;
    }

答案 2 :(得分:1)

在专家编程中使用布尔标志的简单方法。 同样,你可以在你的问题中实现布尔标志,

if(CGRectIntersectsRect(m_Heart, m_sBirdSprite.boundingBox) && [m_sHeart[i] isVisible]){
     m_sHeart[i].visible=true;
     m_fTime += 1;
}