Le XNA Game Studio (XNA ) est un environnement de programmation développé par Microsoft qui vous permet de créer des jeux complexes pour les ordinateurs, les téléphones mobiles et consoles Xbox de l'intérieur de la plate-forme de programmation Visual Studio 2010. Animer des sprites et des modèles dans XNA est important car un , animé, à deux dimensions (2- D) sprite simple, fait une grande différence lorsque vous l'incluez dans vos jeux . Choses que vous devez
Visual Studio 2010
A 256 × 64 texture contenant quatre cadres de la même taille.
Voir Plus Instructions
1
Ouvrez Visual Studio 2010 et aller au constructeur de la XNA Game . Créer une nouvelle instance de la " AnimatedTexture " classe en utilisant cet exemple de code :
privé SpriteTexture de AnimatedTexture ; private const float Rotation = 0; private const char échelle = 2.0f ; privé const float Profondeur = 0.5f ; Game1 publique () {
SpriteTexture = new AnimatedTexture ( Vector2.Zero , rotation, échelle , profondeur) ; # si ZUNETargetElapsedTime = TimeSpan.FromSeconds (1 /30,0) ; # endif }
Note que le taux de trame doit être de 30 images par seconde ( fps ) si vous prévoyez d'utiliser votre animation sur Zune. Dans cet exemple, " (0,0 )" est l'origine de texture. La texture a pas de rotation , est à l'échelle de "2" et a une profondeur de « 0,5 ».
2
Chargez la texture contenant les quatre cadres et le diviser en images d'animation par utilisant cet exemple de code :
privé fenêtre fenêtre ; objPos de Vector2 privés ; privés const int Cadres = 4; privé const int FramesPerSec = 2; protected override void LoadContent () { SpriteBatch = new SpriteBatch ( GraphicsDevice ) ; SpriteTexture . charge ( contenu » objectanimated " , Cadres , FramesPerSec ) ; viewport = graphics.GraphicsDevice.Viewport ; shipPos = new Vector2 ( viewport.Width /2, viewport.Height /2); }
" AnimatedTexture «charges de la classe la texture et le tire en trames . Cet exemple dessine deux images par seconde, pendant deux secondes. Remplacer " objectanimated " avec le nom de votre bien sprite.
3
Déterminer les cadres d'animation à afficher en utilisant la méthode "Update" . Utilisez ce code comme exemple:
protected override void update ( gameTime gameTime ) {float écoulé = ( float) gameTime.ElapsedGameTime.TotalSeconds ;//Ajoutez votre logique de jeu ici
SpriteTexture . . updateFrame ( écoulé) ; base.Update ( gameTime );} public void updateFrame (float écoulé) {if ( pause ) return; TotalElapsed + = écoulé; if ( TotalElapsed > TimePerFrame ) { Frame + +; Cadre = Cadre % FrameCount ; TotalElapsed - = TimePerFrame ;}}
méthode de
Le AnimatedTexture " de updateFrame " reçoit les secondes se sont écoulées entre les mises à jour et gère l'affichage des différents cadres
4
le sprite dans le jeu de . " Dessiner " méthode en utilisant la fonction " SpriteBatch.Draw " sur l'objet " AnimatedTexture " . Utilisez cet exemple de code pour dessiner sous-rectangle correcte de la texture contenant un sprite:
protected override void nul ( gameTime gameTime ) { GraphicsDevice.Clear ( Color.CornflowerBlue ) ;//Ajouter le code de votre dessin ici
< p> spriteBatch.Begin (); SpriteTexture.DrawFrame ( SpriteBatch , objPos ) ; spriteBatch.End (); base.Draw ( gameTime );} vide DrawFrame publique ( SpriteBatch lot, screenPos Vector2 ) { DrawFrame (batch , Frame, screenPos ) ;} publiques vide DrawFrame ( SpriteBatch lot , int cadre, screenPos Vector2 ) {int FrameWidth = myTexture.Width /FrameCount ; Rectangle sourceRect = new Rectangle ( FrameWidth * cadre , 0, FrameWidth , myTexture.Height ) ; batch.Draw ( mytexture , screenPos , sourceRect Color.White , Rotation , Origine , échelle , SpriteEffects.None , profondeur) ;}
5
Compiler et construire le projet. Lorsque vous exécutez le projet , vous pourrez voir l'animation créée par les quatre cadres de votre texture originale .