1

PlayN で、ルート レイヤーをスケーリングした場合 (たとえば、スケール 2.0)、画面上でマウス ポイント 10,10 を検出し、それを画面上に描画すると、表示されるポイントは、OS で見た距離の 2 倍になります。マウスポイント。

私が望むのは、ドラッグするオブジェクトが、OS マウス ポインターを移動するのとまったく同じ距離で移動することです。

マウス入力 X/Y を論理スケーリング座標系にマップする座標マップ機能はありますか?

ありがとう。

4

1 に答える 1

1

選択肢は 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
    }
});
于 2012-04-15T19:07:03.010 に答える