Benutzer mit den meisten Antworten
XNA texture2d.setdata problem

Frage
-
Hi
Ich versuche zur Zeit ein kleines projekt mit xna zu entwickeln und möchte dafür mit perlin noise eine textur erstellen. Allerdings scheitert es bei mir immer wenn ich versuchen will die daten in eine texture2d zu konvertieren:
texture.SetData<Color[]>(MapGradient(Color.White , Color.Black, GeneratePerlinNoise(GenerateWhiteNoise(width, height),6)));
Dann kommt die Fehler meldung:
Der Typ 'Microsoft.Xna.Framework.Color[]# darf keine NULL -Werte zulassen, wenn er als 'T'-Parameter im gernerischen Typ oder in der generischen Methode 'Microsoft.Xna.Framework.Graphics.Texture2D.SetData<T>(T[])' verwendet werden soll.
Wenn mir jemand weiterhelfen könnte wäre das echt nett :)
- Bearbeitet Yoghurt42 Donnerstag, 29. Mai 2014 13:55
Antworten
-
Problem gelöst! Hab statt der Textur2d eine Bitmap verwendet. Klappt alles wunderbar :) Trotzdem danke für die Hilfe!
- Als Antwort markiert Ionut DumaModerator Dienstag, 10. Juni 2014 09:56
Alle Antworten
-
Hallo,
ich kenne mich nicht mit XNA aus, darum kann ich nur allgemein etwas zu dem Fehler sagen.Du gibst an, das der generische Typ ein Array von Color ist. In der deklaratiuon der SetData-Methode ist die einzige Vorraussetzung für T, das es ein Werttyp (eine Struktur) ist. Da ein Array jedoch null-Werte annehmen kann, erscheint der Fehler.
Es sieht für mich so aus, das du ein Array von Color-Werten übergeben möchtest. Da der erste Parameter der SetData-Methode vom Typ T[] ist, vermute ich das der Aufruf wie folgt aussehen muss:
texture.SetData<Color>(MapGradient(Color.White , Color.Black, GeneratePerlinNoise(GenerateWhiteNoise(width, height),6)));
Dadurch wird T zu Color, wodurch ein Color[] erwartet wird.
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Das sieht nun so aus, als ob du immer noch <Color[]> in deinem Code stehen hast. Dadurch wird nun ein Color[][] erwartet. Ich dachte das du nur <Color> benötigst, wodurch die Funktion ein Color[] verlangt.
Welchen Rückgabetyp hat denn MapGradient?
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Problem gelöst! Hab statt der Textur2d eine Bitmap verwendet. Klappt alles wunderbar :) Trotzdem danke für die Hilfe!
- Als Antwort markiert Ionut DumaModerator Dienstag, 10. Juni 2014 09:56