Java を使用して Android 用のゲームをいくつか作成した後、appMobi で最初のゲームを作成しています。私は基本的にエンドレス ランナー アーケード ゲーム、2 d、トップ ビューを作成するつもりです。
私は appMobi をプレーンな JS と CSS3 で使用しています (Impact などの他のライブラリは使用していません)。
キャンバスでいくつかのテストを行うことから始め、加速度計でボール (基本的にはキャンバスを使用してレンダリングされた円) を制御し、他のボールを収集する必要がある非常に単純なデモを作成しました。Galaxy S2 と iPhone 4 でテストしたところ、iPhone の方がはるかに優れているように見えたので、代わりに dom 要素を使用する単純なエンジンの作成を開始しました。私は基本的に、タグに接続し、位置ベクトルを保持するオブジェクトを作成し、基本的に次のことを行う描画関数も追加しました: this.element.style.left=x+'px' (上と y についても同じ)。
メイン ループで、オブジェクトの描画関数を呼び出し、ゲーム ロジックに従って位置を更新し、この window.requestAnimationFrame ラッパーを使用して mainLoop を再呼び出ししました。
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と、いくつかのグラフィックス(2つの200x200 pngと背景)をオンにしたs2でテストしましたが、すべてが〜60 fpsでスムーズに実行されました。私は結果に非常に満足しており、iPhone 4 iOS 4.x でテストすることに本当に興奮しましたが、残念なことに 2-3 FPS で実行されました! 私のアンドロイドより30倍遅い。私は多くの変更を加え始めました(現在、720x1280のビューポートを使用しています)ので、320 * 480を使用して、代わりにキャンバスを使用し、スクロールする背景を削除し、画像のサイズを変更しましたが、役に立ちませんでした.すべてのバリエーション。
私が得た最高は5 FPSでした。テストする別の iPhone、iOS5 を搭載した iPhone 4S を入手しましたが、非常に不安定な FPS になりました。3 から 50 の範囲でしたが、プレイできませんでした。誰もプレイする可能性はなく、コンテンツを詰め込むことさえ始めていません。
私は本当にクロスプラットフォームを利用したいのですが、Apple 市場をあきらめるのはもったいないので、ヒントやアドバイスは温かく受け取られます!
ありがとう、ガブリエル