XNA-Sample: MoonTaxi (Teil 1)
Hallo lieber Leser dieses Blogs. Bedingt durch den Wechsel meines Arbeitgebers wurde dieser Blog inzwischen eingestellt und ich habe leider keine Chance, die Inhalte auf dem aktuellen Stand zu halten. Dank der hohen Nachfrage des XNA Tutorials, habe ich diesen Beitrag auf meinen neuen Blog umgezogen. Dort stehen dann auch die notwendigen Downloads zum Sourcecode zur Verfügung. Ich entschuldige mich für diese Weiterleitung, hoffe aber trotzdem auf größtmöglichen Spaß.
Das Tutorial befindet sich jetzt auf https://blog.tomwendel.net
Direkte Links zum MoonTaxi XNA Tutorial:
Comments
Anonymous
April 21, 2010
Sehr schönes Tutorial, danke dafür! Werde ich heute noch ausprobieren! Freue mich schon auf die nächsten Teile!Anonymous
June 03, 2010
absolut der hammer dein Tutorial. danke dir vielmals für deine Mühe und deine super Erklärungen. werde sofort loslegen mit deinem SpielAnonymous
July 23, 2010
es ist gut aber ich kann irgend wie dieses moon taxi nict findeAnonymous
November 04, 2010
Ich stimme zu. Ich habe den ersten Teil gerade ohne Vorkentnisse nachprogrammiert und sofort nachvollzogen. Aber eines stört mich: Die Gravitation wirkt sich nur auf die Y-Achse aus. Da mein mathematisches Wissen bereits sehr eingestaubt ist, würde ich mich freuen, wenn du dazu schreiben könntest, wie man das Taxi mathematisch korrekt auf der X-Achse durch Gravitation abbremsen lassen kann.Anonymous
November 04, 2010
Hallo Nepochal. Die Gravitation wirkt nun leider nur nach unten, daher nur die Y-Achse. Was du vielleicht meinst ist die Dämpfung durch den Luftwiderstand? Also dass das Fahrzeug auch wieder langsamer wird, wenn du nichts tust? Das ist auch nicht so schwer. Was dabei physikalisch passiert ist, dass das Fahrzeug vom Luftwiederstand kontinuierlich langsamer wird. Dabei ist die Dämpfung prozentual und nicht linear. Das Fahrzeug verliert mehr Geschwindigkeit, je schneller das ist. Um es in Zahlen auszudrücken: Das Taxi wird pro Sekunde vielleicht um 10% langsamer. Am besten realisierst du das, indem du nach der ganzen Geschwindigkeitsberechnung einfach x Prozent pro Sekunde abziehst. // Geschwindigkeitsänderung auf das Taxi anwenden taxi.Speed = new Vector2(taxi.Speed.X + deltaX, taxi.Speed.Y + deltaY); taxi.Speed *= 0.9 * (float)gameTime.ElapsedGameTime.TotalSeconds; Etwa so. Aber vorsicht. Ich hab das jetzt nicht getestet.Anonymous
November 07, 2010
The comment has been removedAnonymous
November 28, 2010
The comment has been removedAnonymous
November 30, 2010
Content.Load<Texture>("taxi") prüft auf den Asset Name. Zusätzlich kann man noch einen Pfad angeben, sollten die Assets in Ordnern angeordnet ist. Der Asset Name wird erstmal autogeneriert aus dem Dateinamen (Vorsicht! Groß/Kleinschreibung beachten), kann aber über die Eigenschaften des Assets geändert werden.Anonymous
March 17, 2011
The comment has been removedAnonymous
April 07, 2011
Super sache! Mache gerade eine Ausbildung als Anwendungsentwickler und mache privat sehr viel mit C#. Habe lange nach einem ausführlichen Tutorial gesucht und bin jetzt zum glück fündig geworden! Top sache ^^Anonymous
April 07, 2011
Vielen Dank!!! Ich arbeite auch schon an einer Fortsetzung. so stay tuned...Anonymous
April 20, 2011
Vielen Dank! Und mach bitte bitte weitere Tuts. Ich weiß, man kann sowas nur vollständig beherrschen, wenn man einfach alles einzeln selber ausprobiert und sich informiert etc.pp., aber evtl kannst du ja auch weiterführendes, egal was(Buch, Seite..), empfehlen?Anonymous
May 04, 2011
Hallo, super Tutorial, vielen vielen Dank dafür :). Ich hoffe wirklich es war nicht das letzte ;). Leider habe ich jetzt ein kleines Problem, und das beginnt schon bei der ersten Variablendeklarierung: Ich benutze das Visual Studio 2010 Express für Win Mobile und XNA 4.0. Wenn ich jetzt das Taxi als variable initialisieren will: taxiTexture = Content.Load<Texture2D>("Taxi"); bekomm ich folgende Fehlermeldung: The name 'taxiTexture' does not exist in the current context Leider kann ich den Grund für die Fehlermeldung nicht finden, was mach ich falsch? Kann es an XNA 4.0 liegen? Ich hoffe Sie können mir helfen. mfgAnonymous
May 08, 2011
The comment has been removedAnonymous
May 31, 2011
Wo finde ich dein demo project und die resoucen bzw. bilder für das game??Anonymous
June 01, 2011
Hallo Steve, am Ende jedes Artikels gibt es einen Link "Quellcode Teil x". Da würde ich es als erstes versuchen. Cheers TomAnonymous
July 03, 2011
The comment has been removedAnonymous
July 03, 2011
Moinsen. ich mache mein Zeug normalerweise mit Paint.NET (www.paint.net).Anonymous
August 28, 2011
sehr schönes Tutorial danke dafür !!Anonymous
February 07, 2012
Hallo, sehr schönes tutorial, führt einen richtig gut ein. Nur noch einen Verbesserungsvorschlag: Ich würde das so machen die Bewegung mit der Bewegungsgleichung lösen: public void Bewegen(Microsoft.Xna.Framework.GameTime gametime,float powerX,float powerY) { Vector2 power = new Vector2(powerX * POWER, powerY * POWER); // Gravitation Speed.Y = Speed.Y + (float)(GRAVITY * gametime.ElapsedGameTime.TotalSeconds); Position.Y = Position.Y + Speed.Y * (float)gametime.ElapsedGameTime.TotalSeconds + (float)(GRAVITY * Math.Pow(gametime.ElapsedGameTime.TotalSeconds, 2) / 2); //Power Speed = Speed + (power * (float)gametime.ElapsedGameTime.TotalSeconds); Position = Position + Speed * (float)gametime.ElapsedGameTime.TotalSeconds + Speed * (power * (float)Math.Pow(gametime.ElapsedGameTime.TotalSeconds,2))/2; }Anonymous
June 25, 2012
Hallo Herr Wendel, ich möchte gerne die zeit wenn man die taste loslässt bis zum stoppen des objekts verkürzen bzw es direkt zum stehen zu bringen. Wie genau geht das? MfG MarcoAnonymous
October 17, 2012
The comment has been removedAnonymous
November 10, 2012
Tolles Tutorial, hat mir sehr weitergeholfen! Finde ich sogar besser als das Buch, dass ich gerade über XNA lese ("Spieleprogrammierung mit dem XNA Framework") Ich hoffe es kommt noch mehr!Anonymous
December 28, 2012
The comment has been removedAnonymous
December 29, 2012
Hallo Herr Wendel, können Sie bitte den Quellcode noch einmal zur Verfügung stellen - SkyDrive meldet, dass die Dateien nicht mehr vorhanden wären. Vielen Dank!