私はこの記事を見つけました: http://android-developers.blogspot.ca/2010/06/making-sense-of-multitouch.htmlは私の理解に役立ちましたが、私がやろうとしていることを行う方法がまだわかりません行う。
私のゲームでは、仮想アナログ スティックといくつかのボタンがあります。一度に登録できるのは 2 本の指だけです。これが私が欲しいものです。1 つはアナログ スティック用、もう 1 つはボタン用です。
私が確信していない主なことは、アナログスティックに指を置いて動かし、次にボタンに指を置いてからボタンを放すと、アナログスティックは最初の指まで動き続けるはずです.
逆に、ボタンが最初に触れてからアナログ スティックに触れた場合、アナログ スティックを離してもボタンは押し下げられたままになります。
タッチ ポインターは Android でこのように機能しますか。たとえば、指を下に置くと、他の指を上または下に置いても、最初の指を順番に覚えて下に移動し、上に移動してイベントを移動します。 ?
ありがとう
理想的には、次のような機能があればいいのにと思います。
void onTouch(int fingerID, int action, int x, int y)
{
}
置かれた各指がその指が上がると、down、move、up イベントを受け取ります。
このゲームはレーシング ゲームなので、ステアリングとガスのプッシュを同時に行う必要があります。
私の問題は 、action_move で特定されたこのマルチタッチ ポインターに似ています
編集:
私はこのコードを持っています:
private void onTouch(int finger, int action, float x, float y)
{
if(action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_POINTER_DOWN)
{
createInput(finger, x, y);
}
else if(action == MotionEvent.ACTION_MOVE)
{
inputMove(finger, x, y);
}
else if(action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP)
{
destroyInput(finger, x, y);
}
}
public void onTouch(MotionEvent ev)
{
final int pointerCount = ev.getPointerCount();
for (int p = 0; p < pointerCount; p++) {
onTouch(ev.getPointerId(p), ev.getAction(), ev.getX(p), ev.getY(p));
}
}
しかし、それは最初のものに対してのみ機能します。