java - andengine 从菜单开始游戏

标签 java android andengine

我想从菜单开始游戏。在 Eclipse 中,我有 2 个项目,一个是菜单,另一个是实际的游戏。两者都使用 SimpleBaseGameActivity 作为基础。网上的例子做了如下所示的事情。特别是,它创建一个 Intent 并以该 Intent 启动一个 Activity 。下面的代码在 MyGame.class 上给出了 NoClassDefFoundError。这并不奇怪,因为 MyGame.class 不存在,但 MyGame.apk 存在。我该怎么做?

public boolean onMenuItemClicked(final MenuScene pMenuScene,
        final IMenuItem pMenuItem,
        final float pMenuItemLocalX,
        final float pMenuItemLocalY) {

    switch(pMenuItem.getID()) {
        case MENU_PLAY:
        MainActivity.this.runOnUiThread(new Runnable() {
            public void run() {
                Intent intent = new Intent(getApplication(), MyGame.class);
                startActivity(intent);
                finish();       
            }
        });
        return true;
    }
}

-----编辑

我已经让它工作了,所有内容都在一个项目中,当单击菜单项时,游戏就会开始。但是,当单击“后退箭头”时,它不会返回到菜单,而是返回到操作系统。 manifest 文件中的 Activity 定义如下。这看起来正确吗?

<activity
    android:name=".MainActivity"
    android:label="@string/title_activity_main" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity
    android:name="com.mygame.MyGame"
    android:label="@string/mygame_activity"
    android:parentActivityName="com.menu.MainActivity" >
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.menu.MainActivity" />
</activity>

我将其添加到 MyGame 中,但它没有被调用:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}

---编辑 我需要删除这一行:

MainActivity.this.finish();

最佳答案

首先插入Manifest中的标签

<application>...</application>

这个标签:

 <activity
        android:name=".MyGame"
        android:label="MygameName" >
    </activity>

并更改您的代码:

 public boolean onMenuItemClicked(final MenuScene pMenuScene,
        final IMenuItem pMenuItem,
        final float pMenuItemLocalX,
        final float pMenuItemLocalY) {

switch(pMenuItem.getID()) {

case MENU_PLAY:
MainActivity.this.runOnUiThread(new Runnable() {
    public void run() {

        Intent intent = new Intent(MainActivity.this, MyGame.class);
        startActivity(intent);
        MainActivity.this.finish();

    }
});
return true;

关于java - andengine 从菜单开始游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841995/

相关文章:

java - AndEngine - Admob黑屏

android - 在 Android Studio 中将 AndEngine 的图像放在哪里

java - 如何在java中创建一个接受回调函数的方法?

java - 使用 SimpleDateFormat 解析时区不一致

android - 运行 gradlew 测试时出现 Robolectric 错误

android - AngEngine 动态壁纸

java - 将参数传递给 JSF 函数

java - jQuery 多文件上传插件

java - Scala 案例类字段太多

android - 将页脚设置为 ListView