我正在尝试在 ZoomCamera 的 HUD 上放置一些可点击的精灵。精灵可以很好地检测到触摸事件,但前提是 ZoomCamera 放置在其原始位置。
如果我放大或平移相机,似乎触摸区域相对于场景保持在其区域中,而不是相机。因此,仅当我单击精灵以原始状态存在的区域时,该操作才有效。
这是大部分相关代码 -
FloorSelectorButton firstButton = new FloorSelectorButton(0, 100, 80, 80,
this.getVertexBufferObjectManager(), 3, this);
FloorSelectorButton secondButton = new FloorSelectorButton(0, 180, 80, 80,
this.getVertexBufferObjectManager(), 2, this);
FloorSelectorButton thirdButton = new FloorSelectorButton(0, 260, 80, 80,
this.getVertexBufferObjectManager(), 1, this);
mScene = new Scene();
mScene.setOnAreaTouchTraversalFrontToBack();
HUD hud = new HUD();
mZoomCamera.setHUD(hud);
hud.attachChild(firstButton);
hud.attachChild(secondButton);
hud.attachChild(thirdButton);
hud.registerTouchArea(firstButton);
hud.registerTouchArea(secondButton);
hud.registerTouchArea(thirdButton);
this.mScrollDetector = new SurfaceScrollDetector(this);
this.mPinchZoomDetector = new PinchZoomDetector(this);
this.mScene.setOnSceneTouchListener(this);
this.mScene.setTouchAreaBindingOnActionDownEnabled(true);
return mScene;
FloorSelectorButton 只是一个扩展 Sprite 并实现 onAreaTouch 方法的类。
我希望你们能帮助我!
谢谢!