1

AndEngine でマルチタッチを使ったアプリを開発しています。pSceneTouchEvent.getMotionEvent().getX([pointer index])TouchEvent には同等のゲッターがないため、指に触れる座標を取得するために使用しpSceneTouchEvent.getX()ます。

問題は、MotionEvent が画面上の座標を返し、TouchEvent がシーン上の座標を返すことです。ズームインまたはズームアウトすると、画面とシーンの座標が一致しないため、画面の座標をシーンの座標に変換する必要があります。どうやってやるの?

4

3 に答える 3

0

TouchEvent から元の MotionEvent にアクセスできます。

于 2012-04-27T15:59:48.243 に答える
0

解決策が見つかりました。Andengine は Android とは異なる方法でタッチ イベントを処理するため、タッチ座標の履歴はありません。イベントを処理する前に、それらをプライベート変数に格納するだけです。

if (pSceneTouchEvent.getPointerID() == 0) {
    pointer0LastX = pSceneTouchEvent.getX();
    pointer0LastY = pSceneTouchEvent.getY();
}
if (pSceneTouchEvent.getPointerID() == 1) {
    pointer1LastX = pSceneTouchEvent.getX();
    pointer1LastY = pSceneTouchEvent.getY();
}

次に、TouchEvent から値を取得する代わりに、これらにアクセスするだけです。

于 2012-04-27T14:03:15.560 に答える