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 代码时,Sprite 会出现一秒钟
,然后就消失了。

在我看来,这两个“块”代码之间存在问题。
但我无法确定解决方案,甚至无法确定导致此问题发生的原因。

我只知道在我的应用程序中结合 Admob 代码时动画不起作用。

我想知道为什么以及如何解决它。谢谢你们

4

2 回答 2

0

我建议您使用 XML 文件来放置您的管理员。它更干净,易于使用,并且根据我自己的测试,它比覆盖 onsetcontentview 更快。为了实现这一点,您需要扩展 LayoutGameActivity (该类还有一个简单版本。SimpleLayoutActivity 如果我没记错的话)

当我得到一台电脑时,我会改进答案。

于 2012-07-13T16:11:21.943 回答
0

这可能完全不相关,但我最近遇到了随机消失的 Sprites 的问题,尽管与 Admob 无关。当我将以下行添加到设置引擎的位置时,问题就消失了:

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