昨晚,当我遇到 ButtonSprite 的问题时,我很兴奋。我本可以发誓我以前做过这个 - 看起来很简单 - 但是使用 AndEngineExamples 提供的代码并没有真正意义并且会出现错误(例如 - 为什么一个模糊的“run()”方法会创建响应每一个触摸事件?)。
所以我做了一些似乎有意义的事情。
private void loadScenes()
{
mainScene = new Scene();
menu = new Sprite(0, 0, menuTextureRegion, mEngine.getVertexBufferObjectManager()){
@Override
protected void preDraw(GLState pGLState, Camera pCamera)
{
super.preDraw(pGLState, pCamera);
pGLState.enableDither();
}
};
newgamebutton = new ButtonSprite(25, 200, newgameTextureRegion, mEngine.getVertexBufferObjectManager());
multiplayerbutton = new ButtonSprite(25, 310, multiplayerTextureRegion, mEngine.getVertexBufferObjectManager());
menu.setScale(1.65f);
menu.setPosition((CAMERA_WIDTH - menu.getWidth()) * 0.5f, (CAMERA_HEIGHT - menu.getHeight()) * 0.5f);
mainScene.attachChild(menu);
mainScene.attachChild(newgamebutton);
mainScene.attachChild(multiplayerbutton);
mainScene.registerTouchArea(multiplayerbutton);
mainScene.setTouchAreaBindingOnActionDownEnabled(true);
multiplayerbutton.onAreaTouched(mButtonTouched, multiplayerbutton.getWidth(), multiplayerbutton.getHeight());
if(mButtonTouched.isActionDown()) {
mainScene.detachChild(menu);
mainScene.detachChild(multiplayerbutton);
}
}
这似乎很有道理。当按下“多人游戏按钮”时,它会给你 mButtonTouched,当按下它时......它会分离菜单和多人游戏按钮。这显然只是我测试的东西,而不是任何实际项目的一部分,因为我只是在学习,但是我得到一个空指针异常,并且应用程序在显示“菜单场景”之前就关闭了,这显然是正常工作的。此外,在各个站点上,它说我应该在多人按钮之前放置“公共布尔值”,但 Eclipse 不会这样做。
我相信你们已经想通了,但我对 AndEngine 很陌生。感谢您的帮助,伙计们!