C# XNA Texture2D per Url?

01/23/2012 19:32 Psycho_Ente#1
Hi Leute.
Ich arbeite momentan an einem kleinen Spiel und kenne bisher nur die Möglichkeit eine 2D texture vom Content zu zuweisen.
Allerdings würde ich diese gerne per URL zuweisen, da ich vor habe, dass
verschiedene User ihren eigenen Skin hochladen können.

Kennt jemand einen Weg?
01/23/2012 20:29 jacky919#2
Schau mal hier: [Only registered and activated users can see links. Click Here To Register...]

Die URI in einen String um zu wandeln sollte ja kein Problem darstellen.
01/23/2012 21:14 Psycho_Ente#3
Danke für deine Antwort.
Ich habe das nun so im Code stehen, da ich nur FromStream erblicken konnte:
Code:
 public void LoadContent(ContentManager Content)
        {
           
            try
            {
                WebClient client = new WebClient();
                Uri url = new Uri("http://*********.de/ekonomiapictures/Player.png");// + PlayerName + ".png"
                Stream stream = client.OpenRead(url.ToString());
                characterz = Texture2D.FromStream(graphics.GraphicsDevice, stream);
                stream.Flush();
                stream.Close();
                Draw(spriteBatch);
                ldSkin = true;
                
            }
            catch (Exception e) {  }
            ...
Leider Entsteh kein Bild. Was mache ich falsch?
Nebeninformation: ldSkin ist eine Öffentliche Variable, welche bei der Draw Methode in der Game1.cs abgefragt wird... Denn der Spieler wird in einer Extra Klasse behandelt

Danke für weitere Antworten (:
01/23/2012 22:29 vwap#4
Warum callst du Draw?

Btw, du kannst nicht einfach so ne URL laden.
Du musst zuerst die File speichern und dann mit nem FileStream auslesen.
01/24/2012 18:09 x]vIrus[x#5
Quote:
Originally Posted by Headpuster View Post
Warum callst du Draw?

Btw, du kannst nicht einfach so ne URL laden.
Du musst zuerst die File speichern und dann mit nem FileStream auslesen.
warum sollte er das nicht können?

probiers mal mit diesem stream:
Stream stream = new MemoryStream(new WebClient().DownloadData("http://www.google.de/images/srpr/logo3w.png"));
01/24/2012 18:13 vwap#6
Quote:
Originally Posted by x]vIrus[x View Post
warum sollte er das nicht können?
Lol, das ist jetzt aber nicht dein Ernst oder?
Ein FileStream beinhaltet keine System.Net Funktionen, wie das automatische holen von Bytes aus dem Netz.
Schau dir einfach mal die Exception Types von einem FileStream an. Da ist keine System.Net-Exception dabei. Somit erledigt sich das.
01/24/2012 18:54 x]vIrus[x#7
aaaaaaaaaaha o,o

/edit: +aaaaaa
01/24/2012 19:11 Psycho_Ente#8
Ich habe mir überlegt das ganze anders zu machen.
Trotzdem danke an euch beide... (: