Du bist nicht angemeldet.

Werbeanzeige

1

14.11.2014, 15:11

[Java] Libgdx Android verschiedene Screensizes

Hey,

hab mal wieder ein "Problem" mit Libgdx. Wenn ich meine App auf dem Handy ausführe, wird die Größe auf mein Handy "angepasst". Automatisch. Grundsätzlich ist das ja nicht schlecht, nur wenn ich z.B. im Menü ein Bild anklicke, klappt es nicht. In meiner handleInput Methode wird das hier gecheckt:

Quellcode

1
2
3
4
5
6
7
8
9
10
private void handleInput() {
if(Gdx.input.isTouched()) {
    if(Gdx.input.getX() > 20 && Gdx.input.getX() < 50) {
        if(Gdx.input.getY() > 30 && Gdx.input.getY() < 70) {
            buttonClicked();
        }
    }
}
}
 


Da ist jetzt das Problem, dass dieser "InputCheck" nicht auf die Größe angepasst wird.
Bei Google finde ich zwar Lösungen, wie einfach einen Button zu verwenden, aber ich frage mich, ob es nicht irgendwie ohne Button geht. :D

Vielleicht weiß ja jemand von euch wie ich das anstellen könnte.

Schorsch

Supermoderator

Beiträge: 5 206

Wohnort: Wickede

Beruf: Student

  • Private Nachricht senden

2

14.11.2014, 15:39

Du müsstest deine Werte je nach Skalierung des Spiels selbst anpassen. Was auch ginge wäre nach Bereichen abzufragen. Wird die linke Hälfte des Bilds gedrückt oder die rechte. Automatisch wird das nicht gehen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

14.11.2014, 17:04

Du müsstest deine Werte je nach Skalierung des Spiels selbst anpassen. Was auch ginge wäre nach Bereichen abzufragen. Wird die linke Hälfte des Bilds gedrückt oder die rechte. Automatisch wird das nicht gehen.


Hab ich schon versucht. aber zumindest so wie ich das mache, klappt es nicht.
Wenn ich z.B. die Screensize um 20 vergrößere, habe ich mal versucht den? scalex des Bildes um 20 zu vergrößern, also um den Wert wie der Screen vergrößert wurde.
Allerdings verändert sich die Größe des Bildes sehr komisch, wenn scalex genauso verändert wird wie die Screensizex.

Gibt es da irgendeine Rechnung oder so, die man durchführen muss, um herauszufinden, um wie viel man das Bild vergrößern muss, wenn sich die Screensize vergrößert?

BlueCobold

Community-Fossil

Beiträge: 10 859

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

14.11.2014, 17:05

Du sollst nur Deine Koordinaten ändern, nicht Deine Bilder.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

5

14.11.2014, 17:19

Du sollst nur Deine Koordinaten ändern, nicht Deine Bilder.

Achja, stimmt. So klappt es! Vielen Dank! :)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »ClashOfClansPhil« (14.11.2014, 18:47)


6

14.11.2014, 18:48

Wenn du die libGDX scene2d verwendest kannst du das viel eleganter über die schon vorhandenen Listener realisieren, dann musst du dir das nicht selbst errechnen.
Jeder Actor in libGDX erlaubt es einen InputListener zu registrieren.

Wenn du das selbst implementieren willst musst du das mithilfe der Rücktransformation von Pixel zu Weltkoordinaten machen.

Wie kann ich das mit scene2d denn hier z.B. machen?

Quellcode

1
2
3
if(i == 1) {
    batch.draw(texgruen, rechts1, runter1, teilx, teily);
}

7

14.11.2014, 21:10

Vielleicht kann mir jemand ja sagen, wie ich dass hier ganz einfach realisieren kann:

Ich möchte das sowas random generiert wird & man die einzelnen Teile anklicken kann:


(Link)


Das sollen einfach 4x4 mit der Farbe ausgefüllte Qudrate sein.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ClashOfClansPhil« (14.11.2014, 21:39)


Schorsch

Supermoderator

Beiträge: 5 206

Wohnort: Wickede

Beruf: Student

  • Private Nachricht senden

8

15.11.2014, 10:53

Hier. Du holst dir für jedes Feld eine Zufallszahl und legst dementsprechend den Typ des Felds fest.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige