Seltsames Dualtouch Verhalten?

S

seejay

Neues Mitglied
0
Hallo,

ich bin gerade dabei meine erste Android App zu schreiben. Ein Pong Klon ;)

Leider habe ich folgendes Problem:

Spieler Links (SL) bewegt seinen Schläger nach oben. Spieler Rechts (SR) bewegt seinen nach unten. Funktioniert noch.
SL bewegt seinen Schläger auch nach unten. Funktioniert weiter
SL bewegt seinen Schläger wieder nach oben -> Fehler SL bewegt SR's Schläger und umgekehrt und bleibt auch wenn beide sich weiter bewegen. Solange bis ein Spieler seinen Finger vom Display nimmt.

Zum Bewegen der Schläger prüfe ich ab, ob der Bildschirm auf der linken Seite über oder unter dem Schläger berührt wird und bewege dann SL's Schläger. Bei der rechten Seite dann eben SR's Schläger.

Die Geschwindigkeit der Bewegung wird in einer anderen Methode immer wieder auf 0 gesetzt. Da es ja keinen OnTouchEnds Listener gibt.

Hier noch der Code:
Code:
    public boolean onTouch(View arg0, MotionEvent arg1) {
        int i = 0;
        while (i < arg1.getPointerCount())
        {
            if ( arg1.getX(i) < Board.Width / 2+Pong.abstandLinks)
            {
                Paddle paddle = Pong.player1.getPaddle();
                //Links wurde gehalten
                if (arg1.getY(i) < paddle.getY()+paddle.getHeight()/2)
                {
                    paddle.setYMove(-1);
                }
                else
                {
                    paddle.setYMove(1);
                }
            }
            else if ( arg1.getX(i) > Board.Width / 2+Pong.abstandLinks)
            {
                Paddle paddle = Pong.player2.getPaddle();
                //Links wurde gehalten
                if (arg1.getY(i) < paddle.getY()+paddle.getHeight()/2)
                {
                    paddle.setYMove(-1);
                }
                else
                {
                    paddle.setYMove(1);
                }
            }
            i++;
        }
        return true;
    }
Kann mir jemand sagen woran das Problem liegen könnte?

Danke und Gruß
seejay
 
Ja, das liegt an der "Multitouch" Hardware von HTC. Die kann das leider nicht anständig trennen und du wirst auch keinen Workaround dafür kriegen können :/
 
des kann doch net sein?... So ein Handy muss doch die Koordinaten richtig zuordnen können. Es vertauscht irgendwie ab einem bestimmten Punkt die beiden X oder Y Koordinaten. Also aus X1/Y1 und X2/Y2 wird dann plötzlich X1/Y2 und X2/Y1...
Workaround gibt es auch nicht... Also gibt es auch keine 2 Spieler Games in denen beide immer den Finger am Display haben müssen...
 
Das wird nur auf dem Milestone gehen. Die Hardware kann es. Alle HTC Geräte können es nicht. Sorry.
Du kannst dir den MTVisualizer ausm Market laden. Der zeigt dir nur die Koordinaten graphisch an. Und das Ergebnis ist das gleiche. Das existiert auch schon seit dem G1 und es ist nie besser geworden.
 
Ich kann the_alien nur zustimmen. Die meisten HTC Geräte können nur das umschließende Rechteck zwischen zwei Fingern bestimmen, was für Pinch & Zoom Gesten reicht. Das HTC 4G EVO ist hier übrigens die erste positive Ausnahme. Auch das Samsung Galaxy S kann Multi-Touch, sogar mit vier Fingern.

Ich hatte übrigens dieselbe Pong Idee vor ein paar Monaten umgesetzt:
greenrobot Pong Multi Touch
 

Ähnliche Themen

deka
Antworten
6
Aufrufe
1.176
swa00
swa00
C
Antworten
2
Aufrufe
1.022
C3lt1c84
C
Zurück
Oben Unten