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 メソッドを実装する単なるクラスです。
皆さんが私を助けてくれることを願っています!
ありがとう!