2013-11-28 2 views
1

현재 Monogame에 2 차원 공간 사수를 개발 중입니다. 내 게임에서는 스톱워치를 사용하여 플레이어 우주선의 총격전 지연과 다양한 적의 공격과 같은 이벤트 간의 지연을 관리합니다.연산자 '>'를 'System.Diagnostics.Stopwatch'유형의 피연산자에 적용 할 수 없습니다.

예를 들어

, 사용자 프레스 스페이스 바를 나는 다음과 같은 방법을 호출 할 때 :

if (currentKeyboardState.IsKeyDown(Keys.Space)) 
{ 
    if (Logic.PlayerShotDelay.ElapsedMilliseconds > Projectile.shotdelay) 
    { 
     // Fire player shot code 

     Logic.PlayerShotDelay.Restart(); 
    } 
} 

위의 코드는 완벽하게 아무런 문제가 작동하지 않습니다를. 그러나 나는 다른 방법으로 동일한 기술을 사용하려고 :

if (currentanimation.frame < 13) 
{ 
    if (Logic.FrameDelay.ElapsedMilliseconds > Logic.FrameDelay) 
    { 
     currentanimation.Draw(spriteBatch); 
     currentanimation.frame++; 
     Logic.FrameDelay.Restart(); 
    } 
} 

그리고 나는 다음과 같은 오류 얻을 :

오류 1 운영자 '>'이 유형의 피연산자 '긴'와 '시스템에 적용 할 수 없습니다. Diagnostics.Stopwatch '

Projectile.shotdelay와 Logic.FrameDelay는 모두 정적 정수입니다. 멀리 볼 수있는 한, if 문은 기능적으로 동일합니다. 왜 이것이 작동하지 않는지에 관해 나는 완전히 혼란스러워한다. 검색시 null이 아닌 int와 관련된 결과가 있지만 특정 문제에 대한 솔루션을 적용 할 수 없습니다. 어떤 도움이라도 대단히 감사 할 것입니다.

감사합니다. 같은 줄에

+0

다시 확인'FrameDelay'가 무엇인지. 스톱워치의 경과 된 밀리 초 ('긴'유형)를 스톱워치 자체와 비교하고 있습니다. 'Logic.FrameDelay'가 실제로'static int' 일 경우'Logic.FrameDelay.ElapsedMilliseconds'를 호출 할 수 없습니다. –

+2

'Logic.FrameDelay'는 정적 인 int가 될 수 없습니다 - 방금 같은 줄에 Stopwatch 클래스 인스턴스로 처리했습니다! – John3136

+0

'Logic.FrameDelay'는 스톱워치입니다. 분명히 그런 것들을 비교할 수는 없습니다. –

답변

1

당신은 클래스로와 "INT"로 FrameDelay 치료하는

Logic.FrameDelay .ElapsedMilliseconds>Logic.FrameDelay

관련 문제