Java Android:MenuScene和AndEngine
我是AndEngine的新手,我正在尝试创建一个带有菜单的场景,菜单中只有一个按钮项,它只包含一个标签 这是密码Java Android:MenuScene和AndEngine,java,android,andengine,Java,Android,Andengine,我是AndEngine的新手,我正在尝试创建一个带有菜单的场景,菜单中只有一个按钮项,它只包含一个标签 这是密码 public class TestActivity extends SimpleBaseGameActivity implements IOnMenuItemClickListener { static final int CAMERA_WIDTH = 800; static final int CAMERA_HEIGHT = 480; Camera mCam
public class TestActivity extends SimpleBaseGameActivity implements IOnMenuItemClickListener
{
static final int CAMERA_WIDTH = 800;
static final int CAMERA_HEIGHT = 480;
Camera mCamera;
@Override
public EngineOptions onCreateEngineOptions()
{
mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new EngineOptions(true,
ScreenOrientation.LANDSCAPE_SENSOR,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
mCamera);
}
@Override
protected void onCreateResources()
{
// TODO Auto-generated method stub
}
@Override
protected Scene onCreateScene()
{
//Scene scene = new Scene();
//scene.setBackground(new Background(0.09804f, 0.6274f, 0));
//Entity layer = new Entity();
//scene.attachChild(layer);
Font mFont = FontFactory.create(this.getFontManager(),
this.getTextureManager(),
256, 256,
Typeface.create(Typeface.DEFAULT, Typeface.BOLD),
32);
mFont.load();
//Text centerText = new Text(100, 40, mFont, "Hello AndEngine!\nYou can even have multilined text!", new TextOptions(HorizontalAlign.CENTER), this.getVertexBufferObjectManager());
//layer.attachChild(centerText);
TextMenuItem playText = new TextMenuItem(1, mFont, "TEXT_TO_DISPLAY",
this.getVertexBufferObjectManager());
MenuScene ms = new MenuScene();
ms.addMenuItem(playText);
ms.setBackground(new Background(0.09804f, 0.6274f, 0));
//ms.buildAnimations();
//ms.setBackgroundEnabled(false);
ms.setOnMenuItemClickListener(this);
//scene.attachChild(ms);
return ms;
}
@Override
public boolean onMenuItemClicked(MenuScene pMenuScene, IMenuItem pMenuItem,
float pMenuItemLocalX, float pMenuItemLocalY)
{
// TODO Auto-generated method stub
return false;
}
}
应用程序崩溃了,我不知道如何修复它
这是日志cat堆栈跟踪
11-09 07:57:17.670: E/dalvikvm(3960): GC_EXPLICIT freed 186K, 42% free 8192K/13955K, paused 21ms+64ms, total 212ms
11-09 07:57:17.900: E/dalvikvm(3960): GC_EXPLICIT freed 68K, 42% free 8172K/13955K, paused 118ms+33ms, total 179ms
11-09 07:57:17.910: W/dalvikvm(3960): threadid=13: thread exiting with uncaught exception (group=0x4187c438)
我注意到,如果我取消buildAnimations()的注释,在AndEngine中会出现空指针异常,
MenuScene
扩展了CameraScene
,为了使CameraScene
正常工作,它需要对摄影机对象的引用
如果使用默认构造函数创建MenuScene对象,则需要先设置摄影机对象(通过setCamera()
方法),然后再启动场景更新(这将需要有效的摄影机对象)。
或者您可以直接使用其他具有Camera参数的构造函数。在AndEngine中,
MenuScene
扩展了CameraScene
,为了使CameraScene
正常工作,它需要对Camera对象的引用
如果使用默认构造函数创建MenuScene对象,则需要先设置摄影机对象(通过setCamera()
方法),然后再启动场景更新(这将需要有效的摄影机对象)。
或者您可以直接使用其他具有Camera参数的构造函数。请在logcat.logcat info中显示堆栈跟踪,然后我们可以深入研究问题。在您的代码中,您只使用类
MenuScene
的默认构造函数,并且您没有将摄影机与之关联(使用setCamera()
)。或者您可以尝试使用MenuScene
的其他构造函数。非常感谢!如果您发布答案,我很乐意接受它在logcat.logcat info中显示堆栈跟踪,那么我们可能会深入研究这个问题。在您的代码中,您只使用类MenuScene
的默认构造函数,并且您没有将摄影机与之关联(使用setCamera()
)。或者您可以尝试使用MenuScene
的其他构造函数。非常感谢!如果你把答案贴出来,我很乐意接受