AndEngine MenuScene - 无法单击按钮

2024-05-14

我有一个关于 android 和 andengine 的小问题。 这是我的主菜单的源代码

// 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 的代码

// 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没有被调用,我不知道为什么。大部分代码是从官方例子中复制过来的。我的应用程序显示了背景菜单按钮等,但我无法点击其中一个。

有人知道为什么吗?谢谢!


您错过了注册触摸区域呼叫

 scene.registerTouchArea(createGameMenuItem);
 scene.registerTouchArea(joinGameMenuItem);
 scene.registerTouchArea(aboutMenuItem);
 scene.registerTouchArea(settingsMenuItem);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AndEngine MenuScene - 无法单击按钮 的相关文章

随机推荐

  • Mongo按动态字段排序

    所以我传入了一个动态变量 它是我想要排序的字段的名称 假设下面的 sortVariable 可能等于 price createdAt name 等 这不起作用 我该怎么做 function findStuff sortVariable va
  • SQL Server 不使用索引将日期时间与非空进行比较

    我有一个与其他任何表都不相关的简单表 它有一个非 PK 列 它是一个日期 我已经为该列创建了一个非聚集索引 如果我提出这个查询 select from table where datecolumn is not null 但如果我删除 no
  • Android 认为我没有关闭数据库!为什么?

    我有一个 SQLiteDatabase 数据成员 我在 onCreate 中初始化它 并在 onPause onStop 和 onDestroy 中调用 close 它在 onResume 中重新初始化 它似乎运行得很好 但当我查看调试器时
  • 在 Scala 中将元素追加到列表末尾

    我无法添加 type 元素T到一个列表中List T 我尝试过myList myElement但它似乎创建了一个奇怪的对象并访问myList last始终返回放入列表中的第一个元素 我怎么解决这个问题 List 1 2 3 4 Result
  • 无需构建树即可预测霍夫曼压缩比

    我有一个二进制文件 我知道其中每个符号出现的次数 如果我要使用霍夫曼算法压缩它 我需要预测压缩文件的长度 我只对假设的输出长度感兴趣 而不对单个符号的代码感兴趣 因此构建霍夫曼树似乎是多余的 作为一个例子 我需要得到类似的东西 包含 4 个
  • 在 pygame 中,我如何创建一个数据结构来跟踪调整大小事件和对象的坐标?

    我希望在调整屏幕大小后使鼠标事件与对象保持同步 有人告诉我需要创建一个数据结构来跟踪 调整事件大小 新坐标以匹配调整大小 如何使用简单的代数方程来完成此操作并将其集成到调整大小事件中以进行准确更新 反过来做 创建一个虚拟游戏地图 在绘制场景
  • 子类 B 继承自模板类 A [重复]

    这个问题在这里已经有答案了 我最近偶然发现了如下代码 但我无法理解它 template
  • Winform 上的 C# ComboBox 是否有 BeforeUpdate

    我来自 VBA 世界 记得有一个BeforeUpdate我可以在组合框上进行调用 现在我使用 C 并且喜欢它 我想知道是否有一个BeforeUpdate呼吁ComboBox在 Winform 上 我可以制作一个不可见的文本框并在那里存储我需
  • 生成一个新终端并写入其标准输出

    我有一个应用程序 它使用 GUI 来完成与用户的大部分界面 不过 我想要一个单独的终端窗口 我可以写入一些错误检查 原始值等 我知道我可以使用以下命令生成一个新终端system 命令 但我不知道是否可以进行交互 在最好的情况下 我希望有一个
  • 定时任务应该放在哪一层?

    我正在尝试使用分层架构来实现 DDD 应用程序 我有 基础设施层 实现应用程序的技术特定部分的层 领域层 包含领域模型的层 应用层 包含与领域模型交互的干扰的层 接口层 从外部接收事件的层 经典的 3 层 基础设施 架构非常清晰 但我的应用
  • 对 URL 进行编码 C#

    所以我有一个看起来像这样的 URL http www test com folder1 id 3 但基本上 当他们单击按钮时 我想在 URL 栏中显示与该 id 关联的值的名称 例如 id 3 是名为 Rollex 的手表 所以我想要读取
  • scala中的反引号有什么用[重复]

    这个问题在这里已经有答案了 我在一本书上找到了以下代码 val list List 5 4 3 2 1 val result 0 list running total next element running total next elem
  • CouchDB 中的分页?

    我将如何实现分页所需的查询 基本上 当请求第 1 页时 获取前 5 个条目 对于第 2 页 获取接下来的 5 页 依此类推 我计划通过 couchdb python 模块使用它 但这不会对实现产生任何影响 The CouchDB 指南 ht
  • 如何解构 React props 并仍然访问其他 props?

    我很好奇如果我想要所有的 props 但也想要解构单个属性 那么组件的参数 props 是否可以像导入一样解构 我想这更像是一个 JavaScript 问题 而不是一个 React 问题 但是举个例子 import React useEff
  • 无需递归即可对可观察结果进行分页 - RxJava

    我有一个非常标准的 API 分页问题 您可以通过一些简单的递归来处理 这是一个捏造的例子 public Observable
  • 为什么 C11 标准不删除不安全的 strcat()、strcpy() 函数?

    C11 C 14标准已经下降gets 本质上不安全的函数会导致安全问题 因为它不会在缓冲区溢出时执行边界检查结果 那么为什么C11标准不下降strcat strcpy 功能 strcat 函数不会检查第二个字符串是否适合第一个数组 strc
  • 用于从某些标记生成 ASCII 图表的工具?

    有没有一种工具可以从某种标记生成 ASCII 图表 用例 能够快速创建和编辑可嵌入 javadoc 或任何其他注释 中的图表 类似于允许我们编写一些标记的内容 A HAS gt B B HAS gt C 该工具将生成可视化结果 A HAS
  • Swift - 将图像插入 PDF 不再适用于 iOS 13

    目前正在开发在我的贷款计算器应用程序上导出 PDF 的功能 我有一个预览屏幕 可以在您保存 PDF 之前显示它 预览屏幕由带有 html 的 webView 组成 其中包含占位符 我能够成功地将图像插入到正确的占位符上 并将其显示在 PDF
  • postgresql-按每个元素中的单词对数组进行排序

    有字符串数组 ARRAY CAT CAT DOG CAT DOG Cat 现在我想根据每个元素中的单词数对该数组进行排序 我已经尝试过 但没有取得任何成功 我想要这个输出 ARRAY CAT DOG CAT DOG CAT Cat 我怎样才
  • AndEngine MenuScene - 无法单击按钮

    我有一个关于 android 和 andengine 的小问题 这是我的主菜单的源代码 AbstractScene is extending Scene public class MainMenuScene extends Abstract