【发布时间】:2012-08-11 14:02:17
【问题描述】:
昨晚,当我遇到 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 非常陌生。感谢您的帮助,伙计们!
【问题讨论】:
-
请添加堆栈跟踪或至少告诉我们哪一行代码导致问题。
-
基本上最后四行 - 按钮拒绝工作。