2012-01-30 46 views
3

在我嘗試創建一個簡單的Pong類遊戲時,我遇到了一個非常奇怪的,有時甚至是嚴重的視覺錯誤。
當我將球(A Flash CS 5.5庫MovieClip)設置爲以相當快的速度在屏幕上移動時,我注意到有時是球的邊緣會在短時間內被截斷它正在移動的方向。移動影片剪輯時的視覺錯誤

當發生這種情況時,它幾乎看起來像是ball MovieClip的位置略高於其自己的邊界,因此位於邊界之外的部分無法繪製。

下面是說明如何看起來畫面 - 至少對我來說:
enter image description here

您還可以在這裏在線查看.swf文件: http://megaswf.com/serve/2099366

一些技術數據:

  1. 無論我嘗試了多少次,我都無法捕捉屏幕截圖。
  2. 有時候我會打開.swf,這個bug幾乎不存在,而在其他時候它是非常公然的。
  3. 我正在使用EnterFrame事件函數來增加/減少MovieClip的位置xy
  4. 我從未在任何Flash應用程序,本機或其他應用程序中遇到任何此類問題。
  5. 截取/舍入xyMovieClip沒有幫助。也沒有將cacheAsBitmap設置爲true。

什麼在世界上可能導致這個問題?

在此先感謝。

+0

我無法複製您的問題 - 也許您安裝了Flash Player的一個令人毛骨悚然的版本?我正在使用11.1。 – Marty 2012-01-30 00:23:20

+0

其實我不時遇到這個問題。當大的對比區域快速移動時會發生。較高的FPS可見度較低。 它可能是系統範圍的。試着慢慢地左右移動一個窗口... 說到這個,它在windows上嗎? – 2012-01-30 00:23:43

+0

在我的蘋果機芯上有點生澀,但不像你所描述的那樣(我真的知道你的意思)。是的,打印屏幕無法捕捉它。 如果您使用了定時器,我會懷疑幀速率不均勻。你讀過[this](http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/)嗎?可能是這樣。你使用什麼FPS? – 2012-01-30 00:27:22

回答

0

我不知道這個確切的技術原因(我猜它與屏幕刷新率vs FPS有關),但我很確定它是一個屏幕神器而不是一個真正的渲染錯誤(它就是爲什麼你不能在屏幕截圖上獲得它)。你可以嘗試一些事情,以減少影響,像某種運動模糊的:

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

或其他視覺調整......但要注意裸這個東西是一個黑色圓/白背景情況非常顯着但是,在更復雜的情況下,眼睛更寬容。我不確定是否有技術解決方案(可靠的機器/操作系統/瀏覽器),但你也可以嘗試像optimizing your game loop(blitting +穩定的幀率+ updateAfterEvent())...雖然我不確定結果就像人們想的那樣(我猜它可能會有所幫助)。

1

我有同樣的問題,在相同的限制下。由於我已將內容添加到我的遊戲中,這已成爲更多問題。這些選項大大降低了神器

+0

對不起,所有的編輯,做了很多測試/調試,一旦我學會解鎖主要解決了我的問題。 – 2013-03-08 00:37:29