Android 安卓触摸不工作。安第涅
场景制作得很好,但触摸不起作用。我注册了所有精灵,并在TouchAreaBindingActionDownEnabled(true)上设置了Android 安卓触摸不工作。安第涅,android,touch,andengine,Android,Touch,Andengine,场景制作得很好,但触摸不起作用。我注册了所有精灵,并在TouchAreaBindingActionDownEnabled(true)上设置了。我试过使用MenuScene中的Andengine,但它也不能仅接触零件。这是我现在的密码。 我和这位先生有同样的问题,因为我没有出路,我将代码改为: import org.andengine.engine.camera.Camera; import org.andengine.entity.sprite.Sprite; import org.andeng
。我试过使用MenuScene中的Andengine,但它也不能仅接触零件。这是我现在的密码。
我和这位先生有同样的问题,因为我没有出路,我将代码改为:
import org.andengine.engine.camera.Camera;
import org.andengine.entity.sprite.Sprite;
import org.andengine.input.touch.TouchEvent;
import org.andengine.opengl.texture.region.ITextureRegion;
import org.andengine.opengl.util.GLState;
import org.andengine.opengl.vbo.VertexBufferObjectManager;
import com.***.RM; //I changed the directory name to ***
import com.***.SceneManager; //I changed the directory name to ***
import com.***.SceneType; //I changed the directory name to ***
public class MainMenuScene extends BaseScene {
private final int MENU_PLAY = 0;
private final int MENU_OPTIONS = 1;
private final int MENU_CREDITS = 2;
private final int MENU_EXIT = 3;
final int w = 256, h = 64;
public class MenuSprite extends Sprite {
private int ID;
public MenuSprite(int pID, int pX, int pY, ITextureRegion tex, VertexBufferObjectManager vbom) {
super(pX, pY, w, h, tex, vbom);
this.ID = pID;
}
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
System.out.println("text");
if (pSceneTouchEvent.isActionDown() || pSceneTouchEvent.isActionMove()) {
onclick(this.ID);
this.setScale(1.5f);
return true;
} else {
this.setScale(1f);
}
return true;
}
}
@Override
public void createScene() {
attachChild(new Sprite(RM.MX, RM.MY, rM.menu_back, vbom) {
@Override
protected void preDraw(GLState pGLState, Camera pCamera) {
super.preDraw(pGLState, pCamera);
pGLState.enableDither();
}
});
final MenuSprite playMenuItem = new MenuSprite(MENU_PLAY, RM.MX, RM.CH * 4 / 6, rM.menu_play, vbom);
final MenuSprite optionsMenuItem = new MenuSprite(MENU_OPTIONS, RM.MX, RM.CH * 3 / 6, rM.menu_options, vbom);
final MenuSprite creditsMenuItem = new MenuSprite(MENU_CREDITS, RM.MX, RM.CH * 2 / 6, rM.menu_credit, vbom);
final MenuSprite exitMenuItem = new MenuSprite(MENU_EXIT, RM.MX, RM.CH * 1 / 6, rM.menu_exit, vbom);
attachChild(playMenuItem);
attachChild(optionsMenuItem);
attachChild(creditsMenuItem);
attachChild(exitMenuItem);
registerTouchArea(playMenuItem);
registerTouchArea(optionsMenuItem);
registerTouchArea(creditsMenuItem);
registerTouchArea(exitMenuItem);
setTouchAreaBindingOnActionDownEnabled(true);
}
@Override
public void disposeScene() {
}
@Override
public SceneType getSceneType() {
return SceneType.SCENE_MENU;
}
@Override
public void onBackKeyPressed() {
System.exit(0);
}
public void onclick(int ID) {
switch (ID) {
case MENU_PLAY:
SceneManager.getInstance().createLevelSelectionScene();
break;
case MENU_OPTIONS:
break;
case MENU_EXIT:
onBackKeyPressed();
break;
default:
break;
}
}
}
这是一个屏幕截图(我删除了标题):
在Logcat中,我在触摸时得到以下信息:
04-02 22:29:31.909: I/InputReader(159): dispatchTouch::touch event's action is 0
04-02 22:29:31.909: I/InputDispatcher(159): Delivering touch to current input target
但是我的应用程序过滤的消息没有触摸日志,甚至没有我添加的系统.out
。pOnCreateSceneCallback.onCreateSceneFinished(menuScene)代码>不存在
这不会给出任何警告或错误,但会产生问题