5

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 市場をあきらめるのはもったいないので、ヒントやアドバイスは温かく受け取られます!

ありがとう、ガブリエル

4

2 に答える 2

1

これは、誰かがこの問題を抱えている場合、appMobi のフォーラムで得た回答です。

ダイレクト キャンバスを使用する

JS/CSS3 は、どんなデバイスでも、ひどいパフォーマンスを発揮します。iOS (Safari) のストック ブラウザでは NitroJS が有効になっていますが、UIWebView では有効になっていません。時間があれば、読んでみると、Direct のようなハードウェア アクセラレーションを利用しないと JS ゲームを作成できないことがわかります。キャンバス。

于 2012-08-27T13:37:33.443 に答える
0

directCanvas の使用を開始するためのサンプルとリンクは、次の場所にあります。

http://www.appmobi.com/documentation/index.php?DOC=DIRECTCANVAS_SDK

于 2012-09-04T13:56:00.460 に答える