AndEngine MenuScene - 不能点击按钮 [英] AndEngine MenuScene - can't click on Button

查看:162
本文介绍了AndEngine MenuScene - 不能点击按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个小问题,Android和放大器; andengine。
这是我的主菜单我的源$ C ​​$ C

I have a small problem with android & andengine. This is my source code of my main menu

// AbstractScene is extending Scene
public class MainMenuScene extends AbstractScene implements
        IOnMenuItemClickListener {
    private static final int MENU_CREATE = 10;
    private static final int MENU_JOIN = 20;
    private static final int MENU_ABOUT = 30;
    private static final int MENU_SETTINGS = 40;

    MenuScene scene;

    @Override
    public void loadResources() {
        res.loadMenuResources();
    }

    @Override
    public void create() {
        // Background
        setBackground(new Background(0.09804f, 0.6274f, 0.8784f));
        // Buttons
        scene = new MenuScene(res.camera);
        //scene.setPosition(GameActivity.WIDTH_CENTER, GameActivity.HEIGHT_CENTER);

        final SpriteMenuItem createGameMenuItem = new SpriteMenuItem(
                MENU_CREATE, res.createRegion, res.vbom);
        final SpriteMenuItem joinGameMenuItem = new SpriteMenuItem(MENU_JOIN,
                res.joinRegion, res.vbom);
        final SpriteMenuItem aboutMenuItem = new SpriteMenuItem(MENU_ABOUT,
                res.aboutRegion, res.vbom);
        final SpriteMenuItem settingsMenuItem = new SpriteMenuItem(
                MENU_SETTINGS, res.settingsRegion, res.vbom);

        scene.addMenuItem(createGameMenuItem);
        scene.addMenuItem(joinGameMenuItem);
        scene.addMenuItem(aboutMenuItem);
        scene.addMenuItem(settingsMenuItem);

        scene.buildAnimations();
        scene.setBackgroundEnabled(false);
        scene.setOnMenuItemClickListener(this);
        setChildScene(scene, false, true, true);
    }


    @Override
    public boolean onMenuItemClicked(MenuScene pMenuScene, IMenuItem pMenuItem,
            float pMenuItemLocalX, float pMenuItemLocalY) {
        Log.d("Menuitem", "click");
        switch (pMenuItem.getID()) {
        case MENU_CREATE:
            return true;
        case MENU_JOIN:
            SceneManager.getInstance().showScene(SceneType.LISTGAMES);
            return true;
        case MENU_ABOUT:
            return true;
        case MENU_SETTINGS:
            return true;
        default:
            return false;
        }
    }
}

这是从ResourceManager

And this is my code from the ResourceManager

// menu ressources
public void loadMenuResources() {
    BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
    menuAtlas = new BuildableBitmapTextureAtlas(activity.getTextureManager(),
            1024, 1024, BitmapTextureFormat.RGBA_8888, TextureOptions.BILINEAR);
    createRegion = BitmapTextureAtlasTextureRegionFactory
            .createFromAsset(menuAtlas, activity.getAssets(), "btn_create_game.png");
    joinRegion = BitmapTextureAtlasTextureRegionFactory
            .createFromAsset(menuAtlas, activity.getAssets(), "btn_join_game.png");
    settingsRegion = BitmapTextureAtlasTextureRegionFactory
            .createFromAsset(menuAtlas, activity.getAssets(), "btn_settings.png");
    aboutRegion = BitmapTextureAtlasTextureRegionFactory
            .createFromAsset(menuAtlas, activity.getAssets(), "btn_about.png");

    try {
        menuAtlas.build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(0, 0, 0));
        menuAtlas.load();
    } catch (TextureAtlasBuilderException e) {
        throw new RuntimeException("Error while loading menu resources", e);
    }
}

我的问题是,是, OnMenuItemClickListener 不叫,我不知道为什么。最code是来自官方的例子复制。我的应用程序显示在后台菜单按钮等,但我不能在同一点击。

My problem is, that the OnMenuItemClickListener is not called and i don't know why. The most code is copied from the official example. My app shows the background menus button etc but i cant click at one.

有谁知道这是为什么? THX!

Does anybody knows why? Thx!

推荐答案

您缺少一个寄存器触摸区域呼叫

You are missing a register touch area call

 scene.registerTouchArea(createGameMenuItem);
 scene.registerTouchArea(joinGameMenuItem);
 scene.registerTouchArea(aboutMenuItem);
 scene.registerTouchArea(settingsMenuItem);

这篇关于AndEngine MenuScene - 不能点击按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆