0

AndEngine ゲーム フレームワークを利用した Android ゲームを構築しています。
次のコードを使用して Admob に統合しています。

@Override
protected void onSetContentView() {
    mRenderSurfaceView = new RenderSurfaceView(this, mEngine);
    mRenderSurfaceView.applyRenderer();
    setContentView(R.layout.main);

    final FrameLayout frameLayout = new FrameLayout(this);
    final FrameLayout.LayoutParams frameLayoutLayoutParams =
            new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,
                                         FrameLayout.LayoutParams.FILL_PARENT);


    AdView adView = new AdView(this, AdSize.BANNER, "XXXXXXX");
    adView.refreshDrawableState();
    adView.setVisibility(AdView.VISIBLE);
    final FrameLayout.LayoutParams adViewLayoutParams =
        new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,
                                     FrameLayout.LayoutParams.WRAP_CONTENT,
                                     Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM);

    AdRequest adRequest = new AdRequest();
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR);       
    adRequest.addTestDevice(Secure.ANDROID_ID);
    adView.loadAd(adRequest);

    final android.widget.FrameLayout.LayoutParams surfaceViewLayoutParams =
        new FrameLayout.LayoutParams(super.createSurfaceViewLayoutParams());

    frameLayout.addView(this.mRenderSurfaceView, surfaceViewLayoutParams);
    frameLayout.addView(adView, adViewLayoutParams);

    this.setContentView(frameLayout, frameLayoutLayoutParams);
}


ゲームでは、ボールが作成されると、スレッドで 作成したフェードイン アニメーションが作成されます。

    new Thread(new Runnable() {

        public void run() {
            mBody.setType(BodyType.StaticBody);
            mSprite.setAlpha(0.0f);
            try {
                while(mSprite.getAlpha() < 1.0f) {
                    mSprite.setAlpha(mSprite.getAlpha() + 0.01f);
                    Thread.sleep(3);
                }

                mBody.setType(BodyType.DynamicBody);
                mBody.setLinearVelocity(new Vector2(0, 10));

            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }).start();

問題は
、アニメーションが完全に機能
することですが、Admob コードを追加すると、スプライトが一瞬表示されて
から消えるだけです。

この 2 つのコードの「チャンク」の間に問題があるように思えます。
しかし、解決策や、この問題が発生する原因さえもわかりません。

Admob コードをアプリに組み合わせると、アニメーションが機能しないことしかわかりません。

原因と解決方法を教えていただきたいです。君たちありがとう

4

2 に答える 2

0

管理者を配置するには、XMLファイルを使用することをお勧めします。そのクリーンで使いやすく、私自身のテストによれば、onsetcontentviewをオーバーライドするよりも高速です。これを実現するには、LayoutGameActivityを拡張する必要があります(そのクラスの単純なバージョンもあります。間違っていない場合はSimpleLayoutActivity)

コンピューターを手に入れたら答えを改善します。

于 2012-07-13T16:11:21.943 に答える
0

これはまったく無関係かもしれませんが、Admob とは関係ありませんが、最近スプライトがランダムに消えるという問題がありました。エンジンをセットアップした場所に次の行を追加すると、問題はなくなりました。

engineOptions.getRenderOptions().disableExtensionVertexBufferObjects(); 
于 2012-07-24T14:05:50.047 に答える