if(CGRectIntersectsRect(m_Heart, m_sBirdSprite.boundingBox)){
m_sHeart[i].visible=FALSE;
m_fTime += 1;
}
这是我的代码,问题是我想在m_fTime变量中只添加一个值,但是它在m_fTime变量中不断添加+1,因为它正在进行交叉,现在有什么方法可以添加它相交时只有1个值吗?
答案 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;
}