Andengine(gles2) - ButtonSprite不会对点击做出反应

时间:2012-10-07 23:54:42

标签: android andengine game-engine

我有这样的代码:

mButton = new ButtonSprite(400  , 400, myTiledTextureRegion.getTextureRegion(0), myTiledTextureRegion.getTextureRegion(1), 
            activity.getVertexBufferObjectManager(), new OnClickListener() {

                @Override
                public void onClick(ButtonSprite pButtonSprite, float pTouchAreaLocalX,
                        float pTouchAreaLocalY) {

                                 Toast.makeText(MenuScene.this.activity, "Clicked", Toast.LENGTH_LONG).show();


                }
            });

    this.attachChild(mButton);

我的问题是,当我点击我的按钮时,我不会收到烤面包消息(记录相同的内容)并且aslo sprite不会因myTiledTextureRegion.getTextureRegion(1)而改变。我不知道知道为什么吗?

我可以点击按钮,但没有反应。我尝试使用AnimatedSprite来测试资源并正确显示动画。为什么我的ButtonSprite OnClickListener和sprite更改不起作用?

我加载资源的方式:

BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
    mBitmapTextureAtlas = new BuildableBitmapTextureAtlas(activity.getTextureManager(), 512, 256, TextureOptions.NEAREST);
    myTiledTextureRegion =  BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(mBitmapTextureAtlas, activity, "btn.png", 1, 3);

    try {
        mBitmapTextureAtlas.build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(0, 0, 1));
        mBitmapTextureAtlas.load();
    } catch (TextureAtlasBuilderException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我在Scene类上做了所有事情,因为我只有一个活动(和许多场景)。谢谢你的帮助。

2 个答案:

答案 0 :(得分:5)

看看这是否是问题...在您使用this.attachChild(mButton);附加按钮之前,请确保并使用this.registerTouchArea(mButton);

注册触摸区域

答案 1 :(得分:1)

在将精灵添加到场景后尝试使用:scene.setTouchAreaBindingOnActionDownEnabled(true);