2010-04-10 4 views
0

플래시 리듬 게임을 만들고 있습니다. 나는 약 3 분 동안 반복되는 노트를 포함하는 루프를 (gotoAndPlay의 특정 프레임에서) 무비 클립에 넣었다. 수준이 올라감에 따라 영화 클립의 프레임 속도가 지연되고 더듬 거리기 시작합니다. movieclip에 관한 한,이 문제의 원인이되는 변수 나 함수가 호출되지 않습니다. 나는 이것이 어떻게 일어날 지 모른다. 또한 노트가 텍스트 (래스터 화되지 않은 텍스트)로 표현된다는 점에 유의할 필요가 있습니다. 지금까지 코드를 게시하는 것만으로도 시간 가치있는 것으로 너무 복잡하게 생각할 수 있습니다. 이 무비 클립의 프레임이 게임의 나머지 부분과 어떻게 독립적으로 떨어질 수 있는지 이해하지 못합니다.하나의 무비 클립의 프레임 속도가 시간이 지남에 따라 서서히 감소합니다. 무엇이 이것을 일으킬 수 있습니까? [Flash CS3]

편집 : Sam의 조언에 따라 게임 속도를 늦추는 코드 덩어리를 발견했습니다.

if(_noteBar._decide) 
     { 
      if(_noteBar._correctHits == _noteBar._correctNumberHits) 
      { 
       _noteBar._totalCorrect = true; 
      } 

      else if(_noteBar._correctHits > 0) {} 

      else 
      { 
       _noteBar._decrement = true; 
      } 
     } 

이 코드는 모든 프레임에서 실행됩니다. 솔직히 이것이 어떻게 프레임 속도를 너무 낮출 수 있는지 이해하지 못합니다. 그냥 변수를 확인하고 할당하는 것뿐입니다. 또한, 이것은 내 게임의 기능에 매우 중요합니다. 다른 클래스의 변수를 검사 할 수 있습니까?

답변

1

가능한 한 코드를 제거한 다음 (주석 처리를 해보십시오) 속도를 늦추는 원인을 찾을 때까지 천천히 다시 넣으십시오.

+0

위대한. 나는 영화 클립에 영향을 미치는 수업을 위해 이것을 시도 할 것이다. 감사. – Miles

+0

오케이. 나는 그 문제를 고립 시켰고, 프레임 속도는 부드럽다. 감사! – Miles

0

코드가 느려질 수 있으므로 코드가 확실히 보이지 않습니다. 프레임 당 몇 번 실행됩니까? if을 종료하기 전에 _noteBar._decide = false을 설정해야합니까? 프레임 당 한 번만 실행되도록 추가 검사를 추가 할 수 있습니까? 플렉스에서 이것은 invalidateProperties/commitProperties을 통해 이루어 지지만 플래시에서는 이에 상응하는 항목을 알지 못합니다.

코드를 약간 최적화 할 수는 있지만 차이가있을 수 있습니다.

var noteBar = _noteBar; 

if(noteBar._decide) 
{ 
    va correctHits = noteBar._correctHits; 
    if(correctHits == _noteBar._correctNumberHits) 
    { 
     _noteBar._totalCorrect = true; 
    } 
    else if(correctHits > 0) 
    { 
    } 
    else 
    { 
     noteBar._decrement = true; 
    } 
} 
+0

감사합니다. '_totalCorrect'변수가 매번 true로 설정되면 표시 목록에 새 MC가 추가되어 속도가 느려지는 것으로 나타났습니다. – Miles