Tecnología

Inicio

Cómo animar en XNA

Cómo animar en XNA


El XNA Game Studio (XNA) es un entorno de programación desarrollado por Microsoft que le ayuda a crear complejos juegos para ordenadores, teléfonos móviles y consolas Xbox desde dentro de la plataforma de Visual Studio 2010 de programación. La animación de sprites y modelos en XNA es importante porque un simple animación de dos dimensiones (2-D) sprite,, hace una gran diferencia cuando se incluyen en sus juegos.

Instrucciones

1 Abra Visual Studio 2010 e ir al constructor de juego XNA. Crear una nueva instancia de la clase "AnimatedTexture" mediante el uso de este código de ejemplo:

SpriteTexture AnimatedTexture privada;

private const float Rotation = 0;
private const float Scale = 2.0f;
private const float Depth = 0.5f;
public Game1()
{

SpriteTexture = new AnimatedTexture (Vector2.Zero,
Rotación, escala, profundidad); si ZUNE

TargetElapsedTime = TimeSpan.FromSeconds(1 / 30.0); terminara si

}

Tenga en cuenta que la velocidad de fotogramas debe ser de 30 fotogramas por segundo (fps) si va a utilizar la animación en Zune. En este ejemplo, "(0,0)" es el origen de la textura. La textura tiene ninguna rotación, que está en una escala de "2" y tiene una profundidad de "0,5".

2 Cargar la textura que contiene los cuatro cuadros y se divide en cuadros de animación mediante el uso de este código de ejemplo:

ventana ventana gráfica privado;
objPos vector2 privadas;
const int privada Marcos = 4;
const int privada FramesPerSec = 2;
protected override void LoadContent ()
{

spriteBatch = new SpriteBatch(GraphicsDevice);
SpriteTexture.Load(Content, "objectanimated", Frames, FramesPerSec);
viewport = graphics.GraphicsDevice.Viewport;
shipPos = new Vector2(viewport.Width / 2, viewport.Height / 2);

}

La clase "AnimatedTexture" carga la textura y la dibuja en tramas. Este ejemplo dibuja dos fotogramas por segundo, durante dos segundos. Reemplazar "objectanimated" con el nombre de su activo de sprites.

3 Determinar los cuadros de animación que se mostrarán mediante el método de "Actualizar". Utilizar el código de ejemplo:

protected override void Update (GameTime GameTime)
{

float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
//Add your game logic here.

SpriteTexture.UpdateFrame (transcurrido);
base.Update (tiempo de juego);

}
public void UpdateFrame (flotar transcurrido)
{

if (Paused)
return;
TotalElapsed += elapsed;
if (TotalElapsed > TimePerFrame)
{
Frame++;
Frame = Frame % framecount;
TotalElapsed -= TimePerFrame;
}

}

método "UpdateFrame" del AnimatedTexture recibe los segundos transcurridos entre las actualizaciones y se ocupa de la visualización de los diferentes marcos.

4 Dibujar el sprite en el método "dibujar" del juego mediante el uso de la función "SpriteBatch.Draw" en el objeto "AnimatedTexture". Utilizar 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);
//Add your drawing code here

spriteBatch.Begin ();
SpriteTexture.DrawFrame (SpriteBatch, objPos);
spriteBatch.End ();
base.Draw (tiempo de juego);

}
pública MANUAR vacío (SpriteBatch lotes, Vector2 screenPos)
{

DrawFrame(batch, Frame, screenPos);

}
pública MANUAR vacío (SpriteBatch lote, marco int, 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, Scale, SpriteEffects.None, Depth);

}

5 Compilar y generar el proyecto. Cuando se ejecuta el proyecto, verá la animación creada con los cuatro marcos de su textura original.