2012-01-30 2 views
3

간단한 Pong 같은 게임을 만들려고 할 때 매우 이상하고 때로는 심각한 시각적 버그가 발생했습니다.
볼 (A Flash CS 5.5 라이브러리 MovieClip)을 화면 주위를 약간의 속도로 움직이는 모션으로 설정하면 가끔 공의 가장자리가 그것이 움직이는 방향.MovieClip을 움직일 때의 시각적 버그

가끔은 ball MovieClip이 자신의 경계보다 조금 앞선 것으로 보이므로 국경 밖의 부분이 그려지지 않습니다. 여기

이 보이는 방법을 보여줍니다 사진입니다 - 적어도 나를 위해 :
enter image description here

은 또한 온라인 여기 .SWF 파일을 볼 수 있습니다 : http://megaswf.com/serve/2099366

일부 기술 자료 :

  1. 나는 아무리 노력해도 스크린 샷을 캡처하는 데 실패했습니다.
  2. 가끔은 .swf를 열었을 때 버그가 거의 존재하지 않는 반면 다른 시간에는 매우 뻔뻔 스러웠습니다.
  3. EnterFrame 이벤트 함수를 사용하여 MovieClip의 xy 위치를 증가/감소시킵니다.
  4. 이 컴퓨터 또는 다른 모든 Flash 응용 프로그램에서 이러한 문제가 발생하지 않았습니다.
  5. y 값을 잘라내거나 반올림하면 MovieClip 값이 도움이되지 않았습니다. 또한 cacheAsBitmap을 true로 설정하지 않았습니다.

이 문제의 원인은 무엇입니까?

미리 감사드립니다.

+0

문제를 재현 할 수 없습니다. 어쩌면 플래시 플레이어가 이상한 버전일까요? 나는 11.1을 사용하고있다. – Marty

+0

사실이 문제는 수시로 발생합니다. 큰 대조 지역이 빠르게 움직일 때 발생합니다. 높은 FPS에서는 눈에 띄지 않습니다. 시스템 전체에 적용될 수 있습니다. 천천히 좌우로 움직여보십시오. 말하자면, 창문에 있습니까? –

+0

내 Mac의 움직임에 약간의 육포하지만 당신이 설명 (그리고 난 실제로 당신이 무슨 뜻인지). 그리고 네, 인쇄 화면으로 그것을 잡을 수 없습니다. 타이머를 사용했다면 불규칙한 프레임 속도를 의심 할 수 있습니다. [this] (http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/)을 읽으셨습니까? 그럴 수도 있습니다. 어떤 FPS를 사용하고 있습니까? –

답변

0

정확한 기술적 인 이유는 모르겠지만 (화면 주사율 대 FPS와 관련이 있다고 생각합니다.) 화면의 유물이며 실제 렌더링 버그는 아닙니다. 왜 당신이 스크린 샷에 그것을 얻을 수 없을 것입니다). 당신은 모션 블러의 일종처럼, 효과를 감소하기 위해 여러 가지를 시도 할 수 있습니다 :

//on your game loop 
mc.filters = [new BlurFilter(Math.abs(speed.x), Math.abs(speed.y),3)]; 

또는 기타 시각적 비틀기 ...하지만 마음에 맨손으로이 일 검은-원/흰색 배경 상황에 매우 눈에 띈다 , 그러나 더 복잡한 시나리오에서 눈은 훨씬 더 관대합니다.

기술 솔루션 (기기/OS/브라우저에서 신뢰할 수 있음)이 확실하지 않지만 optimizing your game loop (blitting + steady framerate + updateAfterEvent())과 같은 항목을 사용해 볼 수도 있습니다. 확실하지 않지만 그 결과는 생각하고 싶은대로 될 것입니다. (저는 그것이 조금 도움이 될 것이라고 추측합니다).

1

동일한 제약 조건 하에서 동일한 문제가 발생했습니다. 내 게임에 콘텐츠를 추가 했으므로 문제가 더 커졌습니다.

  • 가 플래시 디버그 플레이어를 업그레이드
  • 을 (제작 설정) 하드웨어 가속 사용 (제작 설정)
  • 감소 프레임 속도 JPEG 품질 JPEG 디 블로킹을 활성화하고 증가 : 이 옵션을 크게 이슈을 감소 Flash Professional
  • Use the non-integrated flash version in Google Chrome (해결 된 임의의 충돌 및 전체 화면 자국)
+0

모든 편집 작업에 대해 죄송합니다. 일단 디버깅을 배웠다면 많은 테스트/디버깅을 수행하여 문제가 해결되었습니다. –

관련 문제