Ich entwickle ein Spiel und ich muss in der Lage sein zu erkennen, dass ein Finger einen MOVE ausführt, während ein anderer Finger einen anderen Teil des Bildschirms berühren kann.
Mit dem folgenden Code kann ich sowohl ACTION_MOVE (in bestimmten Bildschirmbereichen) als auch ACTION_DOWN
erkennen %Vor%Das Problem ist, dass ich nicht in der Lage bin, mich gleichzeitig zu bewegen und zu schießen (ich muss aufhören, mich zu bewegen, um zu feuern und umgekehrt)
Ich bin mir bewusst, dass Android Multi-Touch-Ereignisse verarbeiten kann , aber ich habe keine Ahnung, wie es zu verwenden ist das, um diese Ereignisse und die gleiche Zeit verarbeiten zu können, damit der Spieler sich gleichzeitig bewegen und schießen kann
Ich habe auch versucht, die getActionMasked
ohne Glück zu benutzen
Nach dem Lesen dieser Frage Android MotionEvent.getActionIndex () und MultiTouch
So habe ich das Problem gelöst
%Vor% MotionEvent enthält alle Informationen zu Berührungen, die Sie benötigen. Sie können die Anzahl der Berührungen erhalten, indem Sie event.getPointersCount()
ausführen und versuchen, MotionEvent.ACTION_POINTER_2_DOWN
anstelle von MotionEvent.ACTION_DOWN
zu überprüfen. Um Koordinaten für jede Berührung zu erhalten, können Sie event.getX(0)
und event.getX(1)
verwenden, dasselbe gilt für y
. Wenn Sie MotionEvent.ACTION_MOVE
mit 2 Berührungen haben, erhalten Sie alle diese Informationen in Ihrem Bewegungsereignis.
Probieren Sie den folgenden Code aus. Wenn mehrere Zeiger den Bildschirm berühren, generiert das System die Aktionsereignisse. Mit Zeigeridentifikation können wir einzelne Zeiger mit dem Ereignis in Bewegung verfolgen. Die Zeiger-ID bleibt bei Berührungsereignissen bestehen und ermöglicht auch die Verfolgung einzelner Zeiger über die gesamte Geste hinweg.
%Vor%Tags und Links android event-handling