我在2年前就在瀏覽器中構建了一個策略遊戲。它已經被一小羣人積極地扮演,所以它是一款有效的遊戲。 我們的問題是它的資源飢餓。基本上你想要歌劇或鉻。 IE9或多或少無法播放,並且Firefox在某些地圖上可能會很慢。在2d網頁遊戲中同步動畫片
該遊戲是一個基於瓦片的自上而下的遊戲,使用64x64pixel DIV的地圖。
我們目前正處於最後階段,我們正在關注優化。吃資源的其中一件事就是我們的動畫水。我們有32個不同的水磚,每個水磚分成15個框架。因此,一個.gif文件中的480個64x64圖像是1.1 MB。
這裏是水的鏈接:http://www.warbarons.com/beta5/terrain/water/water2.gif
我們的遊戲採用戰爭迷霧隱藏的敵方單位和城堡,你不能看就像任何RTS遊戲。因此,在.gif的頂部通常會有一個具有透明PNG的圖層。
看來這個解決方案對瀏覽器的要求相當高。當我滾動地圖來顯示FireFox CPU的水位時,CPU會上升到25%,而當沒有水進入時,CPU會上升4-5%。
我一直在谷歌搜索幾天,現在試圖得到一個更好的技術的想法。我已經找到了另外兩種方式來做這件事,無論是用一個在電子表格上迭代的畫布標籤,還是使用CSS來循環顯示電子表格。
我看到這兩個選項的問題是,所有的水磚必須保持同步。如果一個人在另一個人之前開始遊戲,那麼這些浪潮不會同步,這將破壞無縫外觀。
我想知道有沒有人有想法解決這個問題?我知道有多個gif動畫會導致不同步的問題。
是否有一些切肉刀的方式使用畫布來做到這一點?甚至可以將畫布和div混合在一起,還是需要我們改變整個地圖引擎?
任何幫助將不勝感激。
「因此,對.gif文件的頂部通常有一個透明的PNG層」 - 這不就是相當容易作弊? – Flexo
當您加載遊戲時,您只知道從服務器獲取的信息。當你進入FOW時,對數據庫的Ajax調用將檢查你在移動過程中發現的所有圖塊。因此客戶沒有關於他不應該知道的事情的信息。 PNG只是在那裏表明你不能看到這方面的內容。 –