Das XNA Game Studio ( XNA) ist eine Programmierumgebung von Microsoft entwickelt wurde , mit dem Sie komplexe Spiele für Computer , Handys und Xbox-Konsolen in der Visual Studio 2010 Programmier-Plattform hilft . Animieren Sprites und Modelle in XNA ist wichtig, weil eine einfache , animierte , zweidimensionale ( 2-D) Sprite macht einen großen Unterschied , wenn Sie es in Ihre Spiele sind . Things You
Visual Studio 2010
A 256 × 64 Textur mit vier Frames der gleichen Größe .
Brauchen anzeigen Weitere Anweisungen
1
Öffnen Sie Visual Studio 2010 und die XNA Spiel Konstruktor gehen . Erstellen Sie eine neue Instanz der " AnimatedTexture " -Klasse mit diesen Beispielcode :
privaten AnimatedTexture SpriteTexture , private const float Rotation = 0; privaten const float Skala = 2.0f ; privaten const float Tiefe = 0.5f ; öffentlichen Game1 () {
SpriteTexture = new AnimatedTexture ( Vector2.Zero , Rotation , Skalierung, Tiefe ); # if = ZUNETargetElapsedTime TimeSpan.FromSeconds (1 /30,0) ; } # endif
Hinweis dass die Frame-Rate muss 30 Frames pro Sekunde (fps) , wenn Sie Ihre Animation auf Zune verwenden möchten . In diesem Beispiel ist " (0,0) " Textur ist die Herkunft . Die Textur weist keine Rotation , ist bei einer Skala von "2" und hat eine Tiefe von " 0,5 ".
2
Laden Sie die Textur mit den vier Frames und teilen sie in Animationsframes durch mit diesen Beispielcode:
privaten Viewport Ansichtsfenster , private Vector2 objPos , private const int Frames = 4; privaten const int FramesPerSec = 2; protected override void LoadContent () { SpriteBatch = new SpriteBatch ( GraphicsDevice ); SpriteTexture . load ( Inhalt , " objectanimated " , Frames, FramesPerSec ); Ansichtsfenster = graphics.GraphicsDevice.Viewport ; shipPos = new Vector2 ( viewport.Width /2, viewport.Height /2); }
" AnimatedTexture " Klasse lädt die Textur und zieht sie in Frames. Dieses Beispiel zieht zwei Bilder pro Sekunde, zwei Sekunden lang. " Objectanimated " durch den Namen Ihrer Sprite Asset .
3
Bestimmen Sie die Animations-Frames durch den Einsatz der "Update "-Methode anzuzeigen. Verwenden Sie diesen Code als Beispiel:
protected override void Update ( GameTime GAMETIME ) {float vergangen = (float) gameTime.ElapsedGameTime.TotalSeconds ;//Fügen Sie Ihre Spiel-Logik hier
SpriteTexture . . UpdateFrame (abgelaufene ); base.Update ( GAMETIME );} public void UpdateFrame (float verstrichen ) {if ( Pausiert ) return ; TotalElapsed + = verstrichen ist; if ( TotalElapsed > zeitProBild ) { Frame + +; Rahmen = Rahmen FrameCount % ; TotalElapsed - = zeitProBild ;}}
AnimatedTexture die " UpdateFrame "-Verfahren erhält der verstrichenen Sekunden zwischen den Updates und sorgt für die Darstellung der unterschiedlichen Frames
4
zeichnen des Sprites im Spiel ist . "Draw "-Methode unter Verwendung des " SpriteBatch.Draw "-Funktion auf der " AnimatedTexture " Objekt . Verwenden Sie dieses Beispiel -Code zum korrekten Teilrechteck der Textur , die ein Sprite zeichnen:
geschützt override void Draw ( GameTime GAMETIME ) { GraphicsDevice.Clear ( Color.CornflowerBlue ) ;//In Ihre Zeichnung Code hier
< p> spriteBatch.Begin (); SpriteTexture.DrawFrame ( SpriteBatch , objPos ); spriteBatch.End (); base.Draw ( GAMETIME );} public void DrawFrame ( SpriteBatch Charge, Vector2 screenPos ) { DrawFrame (Batch- , Frame, screenPos ) ;} public void DrawFrame ( SpriteBatch Charge, int Rahmen, Vector2 screenPos ) {int FrameWidth = myTexture.Width /FrameCount ; Rectangle sourceRect = new Rectangle ( FrameWidth * frame , 0, FrameWidth , myTexture.Height ); batch.Draw ( myTexture , screenPos , sourceRect , Color.White , Rotation, Origin , Größenunterschied, SpriteEffects.None , Tiefe );}
5
Kompilieren und erstellen Sie das Projekt . Wenn Sie das Projekt ausführen , sehen Sie die Animation mit den vier Bildern von Ihrem ursprünglichen Textur erstellt .