Seite 1 von 1

C sharp mit XNA 4.0 Buchvorlage XNA 3.5

Verfasst: 13.10.2013, 21:41
von Terep
Zur Zeit teste ich XNA 4.0 auf MS Visual Studio 2012 Prof.

Visual Studio 2012 verlangt XNA 4.0
Das Buch von Hans-Georg Schumann, Framework in die XNA-Entwicklung (XNA 3.5) liest sich gut.
Leider bekomme ich jetzt die Fehlermeldung, dass er eine x.jpg Datei nicht laden kann.

Der Quellcode:
Kugel1.SetTexture(Texture2D.FromFile(GraphicsDevice, "KugelX.jpg"));

Die Fehlermeldung
"Microsoft.Xna.Framework.Graphics.Texture2D" enthält keine Definition für "FromFile".

Das Visual Studio aktualisiert im Prinzip auf 4.0, nicht jedoch alle Code-Aspekte.

Daher die Frage, kennt jemand die Lösung?
Wie lade ich unter 4.0 ein Bild?

Leider gibt es kein Buch für 4.0. XNA
Wenn jemand ein gutes Tutorial kennt, auch in Englisch, würde ich es gerne testen.

Terep

Re: C sharp mit XNA 4.0 Buchvorlage XNA 3.5

Verfasst: 13.10.2013, 22:06
von Artificial Mind
Hallo Terep,

Guck einfach in die aktuelle Dokumentation:
http://msdn.microsoft.com/en-us/library ... o.40).aspx

Anscheinend läuft jetzt alles über "FromStream" dem du dann wahrscheinlich einen FileStream übergeben kannst.

Cheers
Mind

Re: C sharp mit XNA 4.0 Buchvorlage XNA 3.5

Verfasst: 14.10.2013, 19:36
von Terep
Hallo Artificial Mind

Hatte gehofft, da nicht durchhecheln zu müssen. Eine Antwort in Form eines Code-Einzeilers wäre mir lieber gewesen.
Aber so soll es nicht sein. Mein Weg zur Lösung:

1. Mit der rechten Mousetaste in die Projektmappe auf den Knoten Content gehen.
2. Hinzufügen: vorhandenes Element anwählen und das Bild im Verzeichnis suchen und anklicken.
3. Die x.jpg Datei erscheint in der Projektmappe, einmal anklicken
4. Im Eigenschaften-Explorer den Namen notieren.
5. jetzt geht es in den Quellcode
zuerst in Initialize(), hier folgenden Code eingeben
spriteBatch = new SpriteBatch(GraphicsDevice);
myTexture = Content.Load<Texture2D>("Kugel1");
base.Initialize();
natürlich muss Texture2D myTexture; oben initialisiert werden.
6. weiter geht es mit der Methode LoadContent()
spriteBatch = new SpriteBatch(GraphicsDevice);
natürlich oben initialisieren SpriteBatch spriteBatch;
7. Methode LoadContent()
spriteBatch = new SpriteBatch(GraphicsDevice);
natürlich oben initialisieren SpriteBatch spriteBatch;
8. die draw Methode
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
spriteBatch.Draw(myTexture, spritePosition, Color.White);
spriteBatch.End();
base.Draw(gameTime);
natürlich oben initialisieren Vector2 spritePosition = Vector2.Zero;

Nachdem ich im Original-Buchcode entsprechend korrigiert habe, kommt das Bild.

Den Link kenne ich, habe aber den deutschen genommen:
http://msdn.microsoft.com/de-de/library ... o.40).aspx

Naja, wenn ich das Buch so aktualisieren kann, habe ich den Quellcode wohl verstanden.
Obwohl da noch ein paar Grauzonen sind. Mal sehen, wie weit ich komme.

Terep