El XNA Game Studio ( XNA) es un entorno de programación desarrollado por Microsoft que ayuda a crear juegos complejos de ordenadores, teléfonos móviles y consolas de Xbox desde dentro de la plataforma de programación Visual Studio 2010 . Animación de sprites y modelos en XNA es importante porque un simple, animada , sprite bidimensional ( 2 -D) hace una gran diferencia cuando se incluyen en sus juegos. Cosas que necesitará
Visual Studio 2010
A 256 × 64 textura que contiene cuatro cuadros del mismo tamaño .
Ver Más instrucciones
1
Abra Visual Studio 2010 y pasar al constructor de juego XNA . Crea una nueva instancia de la " AnimatedTexture " clase utilizando este código de ejemplo :
SpriteTexture AnimatedTexture privado; private const float Rotación = 0 ; private const float Escala = 2.0f ; privado const float Profundidad = 0,5 F ; Game1 pública () {
SpriteTexture = new AnimatedTexture ( Vector2.Zero , rotación, escala , profundidad ) ; # Si ZUNETargetElapsedTime = TimeSpan.FromSeconds ( 1 /30,0) ; # endif }
Nota que el tipo de trama debe ser de 30 fotogramas por segundo ( fps) si usted va a utilizar la animación en Zune . En este ejemplo , " ( 0,0) " es el origen de la textura . La textura no tiene rotación, que está en una escala de " 2 " y tiene una profundidad de " 0.5 ".
2
Cargar la textura que contiene los cuatro marcos y se divide en cuadros de animación por el uso de este código de ejemplo :
privado viewport ventana ; objPos vector2 privadas ; const int Marcos privados = 4 ; privado const int FramesPerSec = 2 ; protected override void LoadContent () { SpriteBatch = new SpriteBatch ( GraphicsDevice ) ; SpriteTexture . Load (Contenido , " objectanimated " , Marcos , FramesPerSec ) ; viewport = graphics.GraphicsDevice.Viewport ; shipPos = new Vector2 ( viewport.Width /2 , viewport.Height /2 ) ;}
" AnimatedTexture " cargas de clase la textura y dibuja en marcos. Este ejemplo dibuja dos fotogramas por segundo , durante dos segundos . Reemplazar " objectanimated " con el nombre de su activo sprites .
3
Determinar los fotogramas de animación que se mostrarán mediante el método de " Update" . Utilice el código de ejemplo :
protected override void Update ( GameTime GameTime ) {float transcurrido = ( float) gameTime.ElapsedGameTime.TotalSeconds ;//Añade tu lógica del juego aquí
SpriteTexture . . UpdateFrame ( transcurrido) ; base.Update ( GameTime ) ; } public void UpdateFrame (float transcurrido) { if ( pausa ) return; TotalElapsed + = transcurrido ; if ( TotalElapsed > TimePerFrame ) { Frame + + ; Frame Frame = % frameCount ; TotalElapsed - = TimePerFrame ;} }
método
del AnimatedTexture " UpdateFrame " recibe los segundos transcurridos entre las actualizaciones y se ocupa de la representación de los diferentes marcos
4
Dibuja el sprite en el juego de . " Draw" método utilizando la función " SpriteBatch.Draw " en el objeto " AnimatedTexture " . Utilice este código de ejemplo para dibujar correcta subrectángulo de la textura que contiene un sprite :
protected override void Draw ( GameTime GameTime ) { GraphicsDevice.Clear ( Color.CornflowerBlue ) ;//Agregar el código de dibujo aquí
< p> spriteBatch.Begin (); SpriteTexture.DrawFrame ( SpriteBatch , objPos ) ; spriteBatch.End (); base.Draw ( GameTime ) ;} public void manuar ( SpriteBatch lotes, screenPos vector2 ) { manuar (batch , Marco, screenPos ) ;} public void manuar ( SpriteBatch lotes , marco int , screenPos vector2 ) { int FrameWidth = myTexture.Width /frameCount ; sourceRect Rectangle = new Rectangle ( FrameWidth * marco, 0 , FrameWidth , myTexture.Height ) ; batch.Draw ( myTexture , screenPos , sourceRect , Color.White , rotación , Origen , Escala, SpriteEffects.None , profundidad ) ;}
5
compilar y generar el proyecto. Cuando se ejecuta el proyecto , verá la animación creada con los cuatro cuadros de su textura original .