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

이것은 내 코드이며 문제는 m_fTime 변수에 하나의 값만 추가하려고하지만 연속적으로 m_fTime 변수에 +1을 추가한다는 것입니다. 이제는 어떤 식 으로든 교차하기 때문에 그것이 교차 할 때 단 하나의 값을 추가 하는가?교차 할 때 단 하나의 값을 추가하는 방법은 무엇입니까?

답변

2

당신은 BOOL porperty

을 사용할 수 있습니다
if(CGRectIntersectsRect(m_Heart, m_sBirdSprite.boundingBox) && [m_sHeart[i] isVisible]){ 
    m_sHeart[i].visible=FALSE; 
    m_fTime += 1; 
} 
+0

기존 변수를 사용하여 솔루션을 정리하십시오. (y) –

2

당신의 친절한 답변을 @Himanshu 조시 논리의 관점에서 올바른 주셔서 감사합니다,하지만 난 내가 지적하고 있지 않다, 같은 시도 않았다 구문의 측면에서 잘못된 비트 문법이 잘못되어 새로운/초보 친구에게 올바른 구문을 제공하기 만하면됩니다. 귀하의 질문을 정답으로 표시하고 있습니다.

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

조건이 내부 명령문이 'true'인 경우에만 실행됩니다. 그래서,'m_sHeart [i] .visible'에서'TRUE' 값을 검사 할 필요가 없습니다 –

+0

네, 당신의 논리가 정확한 원인으로 당신의 질문을 표시했습니다. 100 % 정확하고 테스트 된 구문으로 내 대답을 쓴 이유는 무엇입니까? : P – Steve

1

부울 플래그를 사용하는 간단한 방법으로 전문가가 프로그래밍 할 때. 여기에서 문제에 부울 플래그를 구현할 수 있습니다.

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

내가 himanshu에 의해 답변을 수락 한 것을 볼 수 있듯이, 그는 같은 sugessted, 당신은 잘 읽지 않았을 수 있습니다 ... – Steve

+0

미안 스티브, 나는 그것에 새로운이며, 없어 정확하게 당신이 옳은 대답을 표시 할 수있는 아이디어, 이것이 내 대답을 작성한 이유입니다. 당신이 그것을 이상하게 여기거나 복사 감각으로 발견한다면 나는 그것을 삭제할 것입니다. –

+0

그것의 확인, 그리고 stackoverflow에 오신 것을 환영합니다,이 답변은 관리자에게보고되며 당신이 다시이 행동을 반복한다면 그는 당신을 차단합니다 마음에이 일을 계속하지만, 나는보고하지 않습니다 ... :) – Steve

관련 문제