Touch-Eingabe auf GLSurfaceView

  • Hallo erstmal :)
    Ich habe eine weiter frage, undzwar geht es um die Verfolgung von den Koordinaten einer Berührung, genau zu sein um das umrechnen der Koordinaten in OpenGL Koordinaten.


    das Problem ist folgendes: Wenn der Benutzer den Bildschirm berührt, muss auf dieser Position ein Flugzeug erscheinen und dieses soll die Berührung verfolgen, also bewegt sich der Finger, bleibt das Flugzeug unter ihm. Jedoch verstehe ich nicht, warum meine Koordinaten so komisch berechnet werden.


    Mein Renderer für den GLSurfaceView (der das ganze darstellt) wird definiert durch:

    Java
    public void onSurfaceChanged(GL10 gl, int width, int height) {		gl.glViewport(0, 0, width,height);		 		gl.glMatrixMode(GL10.GL_PROJECTION);		gl.glLoadIdentity();				gl.glOrthof(0f, 1f, 0f, 1f, -1f, 1f);	}


    Müsste ich dann nicht, rein theoretisch, die untere linke Ecke als 0|0, oben links als 0|1, unten rechts 1|0, oben rechts 1|1definiert haben. Also in Abhängigkeit zum Bildschirm.


    Dann müsste ich doch die Berührungs Koordinaten per

    Code
    width/(int)event.getX(pointerIndex);


    bzw.

    Code
    height/(int)event.getY(pointerIndex);


    in OpenGL Koordinaten umrechnen? ich meine 0|0 in OpenGL entspricht ja 0|Höhe in Bildschrim Koordinaten? Jedoch erscheint es irgendwo, nur nicht unter der gedrückten Position :D


    Habe ich einen Denkfehler drin, oder gehe ich das Problem allgemein falsch an?
    MFG
    AG


    P.S: Tut mir Leid, wenn das ganze in einem falschen Bereich steht, die anderen schienen mir aber noch unpassender... :D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!