Mein Problem ist, dass ich einen bodenverändernden Boden mit einem Texture2D darstellen muss, was bedeutet, dass ein Boden die Seiten das Bild der Seiten hat, und in der Mitte das gleiche 'mittlere' Bild wiederholt, so:
Um dies zu erreichen, bekomme ich die Texturen 'left edge', 'middle' und 'right edge'. Das Problem ist, dass ich nicht weiß, wie man sie zu einem einzigen texture2D zusammenfügt,
Es ist wichtig, dies zur Laufzeit zu tun, weil sich die Bodenlänge ändert (horizontal), Ich habe gelesen, dass Sie das mit SetData tun können, aber ich habe keine Ahnung, wie ...
Es ist sehr wichtig für mich, dass es als eine Textur und nicht mehrere Texturteile fungiert, da ich die Farseer Physics Engine verwende, um den Boden zu bewegen und ihn zu benutzen.
Ich verwende C # und XNA mit Visual Studio 2010, ich bin ein fast erfahrener C # -Programmierer,
Danke!
Diese Antwort kann Ihnen helfen. Entweder sollten Sie HLSL zum Wiederholen Ihres Bodens verwenden oder Sie sollten Ihren Boden auf einem RenderTarget zeichnen und als einzelne Textur speichern. Genießen.
Erstellen Sie zunächst ein neues Texture2D dienen Sie als Ihre Bodenbeschaffenheit und spezifizieren Sie die passende Breite und Höhe. Holen Sie dann die Daten der drei Texturen, die Sie zusammenführen möchten, mit GetData-Methode . Verwenden Sie abschließend die SetData-Methode , um die Daten festzulegen der neuen Textur als geeignet (überprüfen Sie den Link, können Sie den Startindex angeben).
Warnung: GetData und SetData-Methoden sind langsam. Wenn du diese Textur nur einmal pro Spiel erstellen musst (zum Beispiel bei der Initialisierung), ist das kein Problem.