2012-08-25 21 views
5

我在使用Java爲Android創建一些遊戲後,使用appMobi製作了我的第一款遊戲。 我基本上打算創建一個無盡的亞軍街機遊戲,2D,頂視圖。使用HTML和JS的iPhone遊戲中的性能問題,使用appMobi

我使用appMobi與純JS和CSS3(沒有任何其他庫,如影響)。

我開始通過使用畫布進行一些測試,並創建了一個非常簡單的演示,您可以使用加速度計控制球(基本上是使用畫布呈現的一個圓)並需要收集其他球。我用我的Galaxy S2和iPhone 4測試了它,它看起來像iPhone運行得更好,所以我開始編寫一個簡單的引擎來使用dom元素。 我基本上創建了一個連接到標籤的對象,並且保存了一個位置矢量,還添加了一個繪圖函數,該函數基本上執行以下操作:this.element.style.left = x +'px'(頂部和y相同) 。

在我的主循環我一直呼籲的對象繪製功能和更新,根據我的遊戲邏輯自己的位置,並重新名爲使用該window.requestAnimationFrame包裝主循環:

window.requestAnimFrame = (function(){ 
     return window.requestAnimationFrame  || 
       window.webkitRequestAnimationFrame || 
       window.mozRequestAnimationFrame || 
       window.oRequestAnimationFrame  || 
       window.msRequestAnimationFrame  || 
       function(callback){ 
       window.setTimeout(callback, 1000/60); 
       }; 
    })(); 

然後我轉而創建一個攝像頭對象來控制屏幕定位,並使用css background-position屬性成功滾動背景。 我已經用我的新Galaxy S3測試了它,並在s2上使用了一些圖形(2 200x200 PNG和背景),並且所有內容都以〜60 fps的速度平滑運行。 我對結果非常滿意,真的很興奮測試iPhone 4 iOS 4.x,但令人失望的是它跑到2-3 FPS!比我的android慢30倍。 我開始做了很多改變(目前我使用的是720x1280的視口),所以我嘗試過使用320 * 480,而不是使用畫布,取消滾動背景,調整圖像大小,但無濟於事,而android表現不錯在所有變化。

我得到的最好是5 FPS。我拿到了另一部iPhone測試,一部配備iOS5的iPhone 4S,並且FPS非常不穩定。範圍從3 - 50,但無法播放 - 任何人都不會播放它,我甚至沒有開始包裝它的內容。

我真的很想利用跨平臺的功能,對我來說放棄蘋果市場將是一種恥辱,所以任何提示或建議都會受到熱烈的歡迎!

感謝, 加布裏埃爾

回答

1

這是我在appMobi的論壇得到了答案,如果任何人有這個問題:

使用直接帆布

JS/CSS3將在每個設備上執行可怕,無論如何。 iOS(Safari)中的股票瀏覽器已啓用NitroJS,但不支持 UIWebView ...但如果您有時間,請仔細閱讀,然後您會看到,如果不進入硬件,您將無法編寫JS遊戲像 直接畫布加速。