If anwendung funktioniert nicht

Roovy

Aktives Mitglied
Folgende if-Anwendung habe ich im Zusammenhang mit Slick2D und LWJGL in Verwendung:
Code:
        mousex = Mouse.getX();
        mousey = Mouse.getY();
        if(mousex > 748 && mousex < 780 && mousey > 20 && mousey < 52) {
            if(input.isMouseButtonDown(0)) {
                sbg.enterState(2);
            }
        }
Ich habe es der Übersichtlichkeit getrennt. Ist der Cursor zwischen oben genannten Positionen wechselt das Spiel in eine andere Stage. input ist korrekt als Input-Variable erstellt und initialisiert. Ich habe es auch schon mit isMouseButtonPressed versucht.
Klicke ich nun in den Bereich passiert jedoch nichts! Ich bin mir sicher, dass der Fehler im geposteten Code liegt, da alles andere korrekt funktioniert (glaubt mir).
 
Naja, das ist ein typischer Integer-Vergleich. Der sollte schon funktionieren...
Lasse dir vor der If-Anweisung die werte von mousex,mousey ausgeben,
Schreibe auf jede Ebene in der Verschachtelung eine System.out.println() rein, mit passender Ausgabe, und berichte,
was ausgegeben wird.
 
Folgendes habe ich einfach zur render-Methode von Slick hinzugefügt.
Code:
g.drawString("x:"+mousex+" y:"+mousey, 20, 10);
Es werden die Koordinaten korrekt ausgegeben. Also muss es wohl isMouseButtonDown(0) sein. Ist '0' vielleicht der falsche Code für die linke Maustaste?
 
Abbruch! Ich habe den Fehler auf den zweiten Blick gefunden: Das Koordinatensystem aus dem die Mauskoordinaten gelesen werden beginnt links unten, statt links oben wie das Renderkoordinatensystem. Darum war der Cursor dauerhaft an der falschen Stelle.
Irgend eine Ahnung, ob und wie ich das umstellen könnte? Notfalls werde ich es einfach so anwenden wie es ist...
 

Zurück
Oben