Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Come animare in XNA

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

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 .

 

Programmazione © www.354353.com