2012-02-23 28 views
0

我使用瓦片引擎以基於關陣列巨大的地圖。該地圖分爲多個區域,只繪製「視圖」周圍的區域中的圖塊,這使得巨型地圖和平滑移動具有很好的性能。追查瓶頸/錯誤生成tilemap的在HTML5畫布遊戲在Firefox

不過,我已經打了只用Firefox的限制,我無法弄清楚。

起初我以爲這是因爲我使用巨大的數組,firefox能夠處理100x100 64px的正方形瓷磚而沒有錯誤,但是以上任何情況都會導致「停止腳本」錯誤並鎖定FF。同時,IE,Chrome,Safari,甚至我2.5歲的HTC android手機都可以生成地圖500x300 +貼圖(儘管手機只能以4fps運行,但它至少可以通過初始化+繪製地圖,不像我的臺式電腦上的Firefox !!)!!!!!!這是15萬個瓷磚!!!!!!!!!!!!!!!相比於窒息10,000瓦的Firefox ....我的2.5歲手機如何生成比我的桌面上運行的Firefox大15倍以上的地圖?

在資源監視器中,我的CPU和RAM最大值立即在FF中,然後給出「關閉文檔以防止數據丟失」的錯誤...但我的手機可以處理比我的桌面大得多的地圖,這讓我相信有一個錯誤, FF處理循環相比IE,Chrome,Safari,Opera和我的手機處理更大的循環?

這裏有一個在所有瀏覽器,包括FF http://simplehotkey.com/TileEngine/tiles/main.html具有100x100的瓦片地圖

這裏用一個500x100瓦圖(50,000瓦),其扼流圈FF,但運行在所有其他瀏覽器和至少負載工作的一個版本的版本我的電話:http://simplehotkey.com/Tiles/main.html

任何人有一個解釋,爲什麼一箇舊手機將生成地圖15倍大於FF可以在我的桌面上處理????????

回答

0

現被顯示在一次全部150000個磚?或者他們只是加載,但直到需要時才使用?

64PX平方解碼圖像使用每個RAM 16KB。因此,其中10,000個將使用160MB的RAM。 150,000個瓦片將使用2 + GB的RAM。和Firefox佔用大量的內存,使其開始交換什麼,我在這裏看到的是....

+0

我覺得沒有15萬點加載獨特的畫面。這意味着Firefox本身就創建了它們全部。這就是爲什麼只有FF掉期的原因。 – 2012-03-11 11:28:30

+0

那麼,瓷磚圖像開始?他們是如何創建的? – 2012-03-11 16:31:41