通過你會列出一個在同一時間。 (其真4個問題至少)
-
進出口使用I類名爲 「GlobalVariables」。我用這個像「速度」那樣的 ,我可以到達任何地方。所以如果我在主線 或在一個類,我可以鍵入「GlobalVarialbes.Speed」,然後改變 的速度。這是處理東西的好方法嗎?或者它是否會因此而變得沉重 ?我只是在其中的許多 「globalvariables」中。 使用全局變量和函數調用可能需要一些時間。如果您在方法中多次使用該變量,則可以通過將該值緩存到局部變量來稍微優化。但是一定要測試結果,如果緩存對象不是原始值,可能會導致調用「new Something()」構造函數,這非常緩慢。
One REALLY annoying thing is that when objects move, I really need
the FPS to be 60 FPS. Because if the FPS is around 30-40, the
objects doesnt move at the same speed, and the objects seems to be
alot closer the each other to... This is really annoying. I just use
object.x += GlobalVariables.Speed (Speed is maybe 4)... Any
suggestions here?
改變你對速度,每幀的像素,每秒像素的方式。然後每秒使用getTimer()來查明自從最後一次渲染幀以來秒數的百分比。我把一些示例代碼在這個線程在這裏:Frame skipping on Flash
If I use a background it actually takes alot of the FPS from me.
Around 7-10 fps. How can I make a background picture less
preformance eating?
背景,並在總圖將是昂貴的操作。如果背景不滾動,請使用cacheAsBitmap。如果可能,請確保背景不包含子圖層。使用位圖而不是矢量。保持儘可能小 - 不要在屏幕外多餘位。另外 - 確保背景沒有被縮放。關閉位圖平滑。嘗試設置舞臺質量StageQuality.LOW或StageQuality.Medium,看看是否有幫助。 == UPDATE == 既然AIR 3.2已經出來,它支持iOS和Android上的OpenGL,請使用該功能。它在flash中被稱爲「stage3D」,它真的是唯一一個用flash來做移動圖形的好方法。用於椋鳥框架的2D圖形。 http://gamua.com/starling/這是憤怒的小鳥在Facebook上使用的引擎。所以它的實際測試和生產準備就緒。 (和它的開源!)
General tips maybe? I use the GPU mode on the iOS devies :)
一般提示:使用位圖的一切。儘可能避免透明度。不要使用過濾器或混合模式。避免阿爾法補間。避免創建新對象 - 回收常用對象,特別是顯示對象。請記住,添加和移除兒童的成本也很高。如果您在可重複使用的項目符號池中有一堆項目符號,則可以將它們設置爲visible = false。然後在重新初始化該子彈對象時visible = true。嘗試搜索「AS3 Object Pooling」
使用Vector而不是Array。
最後:測試和重新測試。測量每個函數調用的時間。優化Flash是一個深入而豐富的主題 - 它永遠不會耗盡。部分原因是你的里程會因項目而異。這裏是一個很好的鏈接,讓你開始學習AS3的優化技巧http://drawlogic.com/2009/05/22/as3-flash-efficient-code-techniques-vectors-in-flash-10-faster-jpeg-encoding-other-optimization-notes/
哇,謝謝你的一些偉大的信息! – user1036231
「改變你對速度的看法,從每幀像素到每秒像素。」我有沒有明白這個權利btw?我應該使用計時器,並告訴它應該移動多少,而不是使用它應該移動的每幀多少個像素? – user1036231
看看我鏈接到的代碼示例(跳幀鏈接)。您可以使用EnterFrame事件來了解自上一幀以來經過了多少時間。然後一旦你知道已經過了多少時間,你就可以將事物移動到合適的數量。 –