XNA 게임의 상태 관리자로 스위치를 사용하고 있습니다. 스위치는 주요 업데이트 방법의 일부이므로 모든 프레임에서 실행됩니다. 때로는 타이머 값을 설정해야하며 메서드 호출 당 한 번만 설정해야합니다. 한 케이스 당 타이머를 설정하는 여러 가지 방법이 있으므로 이전 및 현재 상태 번호를 사용하여 이전 시간을 덮어 쓸 수 있는지 확인할 수는 없습니다.한 번만 루프에서 메서드를 실행하는 방법?
case "state 34": {
SetTime(theTime); // should run only once
// other things
if (TheTimeisRight(time)) // runs every call
{
SetTime(theTime); // should run only once
if (TheTimeisRight(time))
{ /* some methods */ }
}
break; }
이 작업을 수행하려면 어떻게해야합니까? 아니면 스위치 외부로 나가지 않고이 작업을 수행 할 수있는 더 좋은 방법이 있습니까? (SetTime 메서드를 변경하는 것은 괜찮지 만 추가 코드로 스위치를 어지럽히고 싶지는 않습니다.)
완전한 스위치 코드를 추가하고 더 자세히 설명해주십시오. – andy
@Anandkumar 스위치에 대해 명확하지 않은 점은 무엇입니까? 질문에 대한 나의 전환의 예를 보여주었습니다. 모든 사례는 당신이 보는 것과 비슷합니다. 수표, 방법 및 매개 변수 만 다릅니다. – user1306322
프레임마다 메소드 호출 당인가? IE는 프레임마다 한 번? – Alan