Problem beim Skalieren des Spielbildschirms in Libgdx

7

Derzeit kann ich den Bildschirm skalieren, indem ich diesen Code auf eine OrthographicCamera anwende

Camera.setToOrtho(true, Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);

Aber mit dieser Lösung passiert etwas ziemlich Seltsames. Schauen Sie sich dieses Bild meines Spiels unten an

Bild

Scheint gut, oder? Bei weiteren Untersuchungen werden jedoch viele Komponenten um ein Pixel gerendert, und die Kacheln sind alle.

Schau genauer hin

Bild

Ich habe ein paar Fehler eingekreist. Beachten Sie, dass der Schatten des Kriegers, den ich eingekreist habe, für die anderen Krieger gut erscheint. Denken Sie auch daran, dass alles mit pixelgenauer Genauigkeit gerendert wird, wenn ich die Skalierung deaktiviere.

Ich dachte tatsächlich an eine mögliche Ursache für das Problem, als ich dies schreibe, aber ich entschied mich, dies trotzdem zu posten, weil ich annehmen würde, dass jemand anderes auf dasselbe Problem stoßen könnte.

Oxysoft
quelle

Antworten:

7

Es stellte sich heraus, dass mein anfänglicher Verdacht richtig war. Die SpriteBatch-Zeichenmethode verwendet Floats für X und Y, daher habe ich beschlossen, meine Positionen so wie sie sind einzugeben und als Floats beizubehalten. FALSCH. Es scheint, dass die SpriteBatch-Klasse nicht richtig runden kann oder so, denn als ich alle Werte in Ganzzahlen umwandelte und sie dann gab, wurde alles wieder normal und wird so gerendert, wie es sollte.

Oxysoft
quelle
Bitte markieren Sie dies als akzeptierte Antwort (nach zwei Tagen oder was auch immer das Minimum ist).
Asche999
Ja, ich wollte es markieren, aber es stellte sich heraus, dass ich es 2 Tage lang nicht kann und ich weiß nicht warum
Oxysoft
Es soll verhindern, dass Leute ihre eigenen Fragen sofort stellen / beantworten, um sie zu wiederholen. Bitte komm zurück und akzeptiere es nach zwei Tagen :)
ashes999
Ich bin mir ziemlich sicher, dass Sie keinen Repräsentanten für die Beantwortung Ihrer eigenen Frage bekommen ...
rodrigo-silveira