我在使用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,但無法播放 - 任何人都不會播放它,我甚至沒有開始包裝它的內容。
我真的很想利用跨平臺的功能,對我來說放棄蘋果市場將是一種恥辱,所以任何提示或建議都會受到熱烈的歡迎!
感謝, 加布裏埃爾