TVTower
TVTower copied to clipboard
Grafikfehler Pflanzen
Ich habe mal geschaut, wo man die Pflanzen verschieben kann... Hast Du bei Dir auch die Streifen neben einigen der Pflanzen oder ist das wieder ein veraltetes Modul bei mir
?
Ich hab da an sich keine Fehler...kann Texture bleeding sein. Da muessten wir zwischen den jeweiligen Sprites einen Pixel Platz lassen. Kann gerne die Tage meinen Sprite Atlas Packer entstauben bzw was entwickeln, was erstmal die alten Atlasse zerschneidet...und dann wieder nach neuen Regeln zusammensetzt
lonk per discord chat:
bei DirectX9 hab ich außerdem den kleinen Schönheitsfehler, daß an den einzelnen Zuschauern ein halber rosa Rahmen drumherum ist:
Ist das was, was sich noch "schnell" für die nächste Lieferung beheben lässt?
@GWRon : Ich vermute, Du hast diese Grafik-Probleme bei Dir nicht. Der Rahmen bei der Fernsehfamilie ist mir nicht da, bei der Pflanze schon...
Als schneller "Test": Kannst du die entsprechende Grafikdatei oeffnen, mit dem "Zauberstab" auf die rosanen Linien klicken und dann "löschen" (damit sie transparent werden) ?
Danach sollten die "weg" sein.
Wenn Sprites auf einem solchen Spritesheet ohne "Abstand" sind (also Pixel an Pixel), wuerden die Raender der anderen Sprites statt der rosa Linie erscheinen. Generell sollten wir da ein "Padding" einfuehren um das zu vermeiden.
Ich vermute, du spielst "skaliert" und nicht direkt mit 800x600 ? Rundungsfehler bei der Texturskalierung (bzw wenn es Floats wieder auf Ints runterbaut ...) sorgen da denke ich dafuer (in GL oder im Max2DBackend ?).
Achso .. .rosa trifft nur auf die entsprechenden Spritesheets zu.
building_elements.png hat keine ... da sind es eben die "Nachbarsprites" die durchscheinen.
Ich denke da braucht es ein "schickes" Tool, was die existierenden Spritesheets auseinanderpflueckt, dann mit "rahmen + padding" versieht und dann neu (optimiert) in ein Spritesheet packt. Kann ich die Woche gerne basteln. Das generierte "XML" dazu (bzw einfach nur "sprite, x,y, w,h") mit dem existierenden XML dann zu verschmelzen -denke das wird derzeit besser manuell gemacht :)
Tatsächlich taucht der Pflanzenfehler bei mir nur in der Entwicklungsvariante (Fenstermodus 1024x800) auf. Wenn ich das Spiel im Vollbild-Modus starte, gibt es das Problem nicht.
Wie gesagt liegt das an der Skalierung von Texturen.
Derzeit skalieren wir jede Textur hoch - und die Matrix dafuer (die man an OpenGL schickt) hat Kommazahlen - und irgendwann wird sicher auf Integer gerundet. Das sorgt dafuer, dass mal von der originalen Textur ein Pixel "mehr" von links, oben, rechts oder/und unten geholt wird. Das kann auch fuer leichte Unschaerfe der Pixeldaten sorgen (da ja nun mehr "Pixel" auf die Zielflaeche projeziert werden).
Das neue "Render2Texture" macht das anders: dort werden die originalen Pixeldaten (also unskaliert) auf eine Textur gepackt und erst DIE wird am Ende skaliert auf den Bildschirm gebracht. Man erzeugt somit auch (optional) "Anti-Aliasing" zwischen den verschiedenen Sprites sonst "jedes fuer sich" betrachtet wird.