Hydrano
Lieutenant
- Registriert
- März 2008
- Beiträge
- 937
Hi,
ich wollte mal wieder mein Abschlussprojekt vom Fachabi laden. Da ich nun Visual Studio 2012 habe und dort jetzt Monogame statt XNA benutze, konnte ich das Projekt so nicht einfach importieren.
Nun habe ich also ein neues Monogame Projekt angelegt und die Klassen, Contents etc. in das Projekt kopiert. Es lässt sich erstmal fehlerfrei kompilieren aber dann bekomme ich den folgende Fehler:
"Ein Grafikobjekt kann nicht aus einem Bild mit einem indizierten Pixelformat erstellt werden."
Alle Grafikobjekte sind im .png Format. Damals mit XNA funktionierte es einwandfrei, Monogame unterscheidet sich vom Prinzip ja kaum.
Also ich habe eine Klasse Background, diese hat einen Kontruktor der den ContentManager haben will.
Desweiteren habe ich eine Klasse Sprite. In Background erzeuge ich Objekte von der Klasse Sprite.
Background.cs
Kommentiere ich diese Fehlerstelle aus, dann kommt der selbe bei BackgroundOne2.Texture. Das interessante jetzt nur ist das bei zug.Texture kein Fehler kommt.
Google konnte mir speziell zu Monogame keine Tipps liefern. Ich arbeite hier ja mit Texture2D's und nicht mit Bitmaps oder Images.
Und warum kam ein solcher Fehler dann damals nicht ?
ich wollte mal wieder mein Abschlussprojekt vom Fachabi laden. Da ich nun Visual Studio 2012 habe und dort jetzt Monogame statt XNA benutze, konnte ich das Projekt so nicht einfach importieren.
Nun habe ich also ein neues Monogame Projekt angelegt und die Klassen, Contents etc. in das Projekt kopiert. Es lässt sich erstmal fehlerfrei kompilieren aber dann bekomme ich den folgende Fehler:
"Ein Grafikobjekt kann nicht aus einem Bild mit einem indizierten Pixelformat erstellt werden."
Alle Grafikobjekte sind im .png Format. Damals mit XNA funktionierte es einwandfrei, Monogame unterscheidet sich vom Prinzip ja kaum.
Also ich habe eine Klasse Background, diese hat einen Kontruktor der den ContentManager haben will.
Desweiteren habe ich eine Klasse Sprite. In Background erzeuge ich Objekte von der Klasse Sprite.
Background.cs
Code:
public class Background
{
public Sprite zug;
Sprite BackgroundOne;
Sprite BackgroundOne2;
Sprite BackgroundTwo;
Sprite BackgroundTwo2;
// Das geht bis BackgroundFive2 und stellt 5 Layer für Backgroundscrolling dar. Ein fahrender Zug eben.
public Background(ContentManager Content) // Konstruktor
{
zug = new Sprite();
zug.Texture = Content.Load<Texture2D>("Images/Background/zug_wagons"); // KEIN Fehler
// Zuweisung Layer1
BackgroundOne = new Sprite();
BackgroundOne.Texture = Content.Load<Texture2D>("Images/Background/layer1_himmel"); // FEHLER
BackgroundOne.Position = new Vector2(0, 0);
BackgroundOne.Color = Color.White;
BackgroundOne.Size = new Rectangle(0, 0, BackgroundOne.Texture.Width, BackgroundOne.Texture.Height);
BackgroundOne2 = new Sprite();
BackgroundOne2.Texture = Content.Load<Texture2D>("Images/Background/layer1_himmel");
BackgroundOne2.Position = new Vector2(-BackgroundOne2.Texture.Width, 0);
BackgroundOne2.Color = Color.White;
BackgroundOne.Size = new Rectangle(0, 0, BackgroundOne2.Texture.Width, BackgroundOne2.Texture.Height);
Kommentiere ich diese Fehlerstelle aus, dann kommt der selbe bei BackgroundOne2.Texture. Das interessante jetzt nur ist das bei zug.Texture kein Fehler kommt.
Google konnte mir speziell zu Monogame keine Tipps liefern. Ich arbeite hier ja mit Texture2D's und nicht mit Bitmaps oder Images.
Und warum kam ein solcher Fehler dann damals nicht ?