XNA Game Studio ( XNA ) è un ambiente di programmazione sviluppato da Microsoft che consente di creare complessi giochi per computer, telefoni cellulari e console Xbox dall'interno della piattaforma di programmazione Visual Studio 2010 . Animazione di sprite e modelli in XNA è importante perché un semplice , animato , bidimensionale ( 2 -D) sprite fa una grande differenza quando si include nei tuoi giochi . Cose che ti serviranno
Visual Studio 2010
A 256 × 64 trama contenente quattro fotogrammi della stessa dimensione .
Mostra più istruzioni
1
Aprire Visual Studio 2010 e andare al costruttore del gioco XNA . Creare una nuova istanza della " AnimatedTexture " classe utilizzando questo codice di esempio :
AnimatedTexture privato SpriteTexture ; private const float Rotation = 0; private const float Scala = 2.0f ; private const float Profondità = 0.5f ; pubblica Game1 ( ) {
SpriteTexture = new AnimatedTexture ( Vector2.Zero , rotazione, Scala , profondità) ; # se ZUNETargetElapsedTime TimeSpan.FromSeconds = ( 1 /30,0) ; # endif}
Note che il frame rate è di 30 fotogrammi al secondo ( fps ), se si prevede di utilizzare l'animazione su Zune . In questo esempio, " ( 0,0) " è origine di trama . La texture non ha alcuna rotazione , è ad una scala di " 2" ed ha una profondità di "0,5 ".
2
Caricare la texture che contiene le quattro strutture e dividerlo in fotogrammi di animazione da utilizzando questo codice di esempio :
privato viewport viewport ; objPos Vector2 privati ; private const int Cornici = 4; private const int FramesPerSec = 2; protected override void LoadContent ( ) { spriteBatch = new SpriteBatch ( GraphicsDevice ) ; SpriteTexture . carico (Contenuto , " objectanimated " , Cornici , FramesPerSec ) ; viewport = graphics.GraphicsDevice.Viewport ; shipPos = new Vector2 ( viewport.Width /2 , viewport.Height /2) ; }
" AnimatedTexture "carichi di classe la consistenza e lo attira in fotogrammi. Questo esempio richiama due fotogrammi al secondo , per due secondi . Sostituire " objectanimated " con il nome del vostro bene sprite .
3
Determinare i fotogrammi dell'animazione da visualizzare utilizzando il metodo "Aggiorna" . Utilizzare questo codice come esempio :
protetto override void Update ( GameTime GameTime ) {float trascorso = ( float) gameTime.ElapsedGameTime.TotalSeconds ;//Aggiungi la tua logica di gioco qui
SpriteTexture . . UpdateFrame ( trascorso) ; base.Update ( GameTime );} public void UpdateFrame ( float trascorso) {if ( pausa ) return; TotalElapsed + = trascorsi ; se ( TotalElapsed > TimePerFrame ) { frame + + ; Telaio = Frame % FrameCount ; TotalElapsed - = TimePerFrame ; } }
metodo " UpdateFrame " del AnimatedTexture riceve i secondi trascorsi tra gli aggiornamenti e gestisce la visualizzazione dei diversi telai
4
Disegna lo sprite del gioco di . "Disegna " metodo utilizzando la funzione " SpriteBatch.Draw " sull'oggetto " AnimatedTexture " . Utilizzare questo codice di esempio per disegnare corretta subrectangle della trama che contiene uno sprite :
protetto override void Draw ( GameTime GameTime ) { GraphicsDevice.Clear ( Color.CornflowerBlue ) ;//Aggiungi il tuo codice di disegno qui
< p > spriteBatch.Begin (); SpriteTexture.DrawFrame ( spriteBatch , objPos ) ; spriteBatch.End (); base.Draw ( GameTime );} public void sTIRATOIO ( SpriteBatch batch, Vector2 screenPos ) { sTIRATOIO (batch , Frame , screenPos ) ; } public void sTIRATOIO ( SpriteBatch batch, int telaio , Vector2 screenPos ) { int FrameWidth = myTexture.Width /FrameCount ; Rettangolo sourceRect = new Rectangle ( FrameWidth * telaio , 0 , FrameWidth , myTexture.Height ) ; batch.Draw ( myTexture , screenPos , sourceRect , Color.White , rotazione, l'origine della scala , SpriteEffects.None , profondità );}
5
Compilare e creare il progetto . Quando si esegue il progetto , si vedrà l'animazione creata con le quattro strutture della tua trama originale .