PlayN で、ルート レイヤーをスケーリングした場合 (たとえば、スケール 2.0)、画面上でマウス ポイント 10,10 を検出し、それを画面上に描画すると、表示されるポイントは、OS で見た距離の 2 倍になります。マウスポイント。
私が望むのは、ドラッグするオブジェクトが、OS マウス ポインターを移動するのとまったく同じ距離で移動することです。
マウス入力 X/Y を論理スケーリング座標系にマップする座標マップ機能はありますか?
ありがとう。
PlayN で、ルート レイヤーをスケーリングした場合 (たとえば、スケール 2.0)、画面上でマウス ポイント 10,10 を検出し、それを画面上に描画すると、表示されるポイントは、OS で見た距離の 2 倍になります。マウスポイント。
私が望むのは、ドラッグするオブジェクトが、OS マウス ポインターを移動するのとまったく同じ距離で移動することです。
マウス入力 X/Y を論理スケーリング座標系にマップする座標マップ機能はありますか?
ありがとう。
選択肢は 2 つあります。Pointer.Listener
をルート レイヤーに登録Pointer.Event.localX/Y
し、レイヤーの座標系でマウス座標を取得するために使用できます。
graphics().rootLayer().addListener(new Pointer.Adapter() {
public void onPointerStart(Pointer.Event event) {
// use event.localX() and event.localY() here
}
});
または、グローバルを登録して、ポイントを手動で変換するためにPointer.Listener
使用できます。Layer.Util
pointer().addListener(new Pointer.Adapter() {
public void onPointerStart(Pointer.Event event) {
Point local = Layer.Util.screenToLayer(graphics().rootLayer(), event.x(), event.y());
// use local.x and local.y here
}
});