2012-04-14 5 views
1

のPlayN、ポイント[x、y]の位置をスケールした場合(たとえばスケール2.0)、スクリーン上のマウスポイントを検出したとき10,10、画面に表示されるポイントは、OSのマウスポイントで見た距離の2倍です。PlayN、PlayNのスケールレイヤー

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

私のマウス入力X/Yを論理スケール座標系にマッピングする座標マップ関数はありますか?

ありがとうございました。

答えて

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 
    } 
}); 
関連する問題