O XNA Game Studio ( XNA ) é um ambiente de programação desenvolvida pela Microsoft que ajuda você a criar jogos complexos para computadores , celulares e consoles de Xbox de dentro do Visual Studio 2010 plataforma de programação . Animando sprites e modelos em XNA é importante porque um animado, bidimensional (2- D) do sprite simples , faz uma grande diferença quando você incluí-lo em seus jogos . Coisas que você precisa
Visual Studio 2010
A 256 × 64 textura contendo quatro quadros do mesmo tamanho .
Mostrar Mais instruções
1
Abra o Visual Studio 2010 e ir para o construtor do XNA game . Criar uma nova instância da classe " AnimatedTexture " usando este código de exemplo :
SpriteTexture AnimatedTexture privado; const privado flutuar Rotação = 0; Escala const private float = 2.0f ; privado Profundidade const bóia = 0.5f ; Game1 pública () {
SpriteTexture = new AnimatedTexture ( Vector2.Zero , rotação, escala , profundidade ); # se ZUNETargetElapsedTime = TimeSpan.FromSeconds ( 1 /30,0) ; # endif }
Nota que a taxa de quadros deve ser de 30 quadros por segundo ( fps) , se você pretende usar a sua animação em Zune. Neste exemplo , " ( 0.0 ) " é a origem da textura . A textura não tem rotação , está em uma escala de "2" e tem uma profundidade de " 0,5 ".
2
carregar a textura contendo os quatro quadros e divida-o em quadros de animação por usando este código de exemplo :
viewport privado viewport ; privado Vector2 objPos ; private const int Frames = 4; const private int FramesPerSec = 2; protegido LoadContent override void () { SpriteBatch = new SpriteBatch ( GraphicsDevice ); SpriteTexture . carga ( Content ", objectanimated " , quadros, FramesPerSec ); viewport = graphics.GraphicsDevice.Viewport ; shipPos = new Vector2 ( viewport.Width /2, viewport.Height /2); }
A " classe AnimatedTexture " carrega a textura e desenha-lo em quadros. Este exemplo desenha dois quadros por segundo , por dois segundos. Substituir " objectanimated " com o nome do seu ativo objeto.
3
Determinar os quadros de animação para exibir usando o método "Update" . Use este código como um exemplo: .
Atualização override protected void ( GameTime GameTime ) {float decorrido = ( float) gameTime.ElapsedGameTime.TotalSeconds ;//Adicione a sua lógica do jogo aqui
SpriteTexture . UpdateFrame ( decorrido ); base.Update ( GameTime );} UpdateFrame public void (float decorrido ) {if ( pausa ) return ; TotalElapsed + = decorrido ; if ( TotalElapsed > TimePerFrame ) { frame + +; Quadro = Frame % FrameCount ; TotalElapsed - = TimePerFrame ;}}
método " UpdateFrame " do AnimatedTexture recebe os segundos decorridos entre as atualizações e lida com a exibição dos diferentes quadros
4
Desenhe o sprite no jogo. "Empate" método usando a função " spriteBatch.Draw " no objeto " AnimatedTexture " . Utilize este código de exemplo para chamar a correta subrectangle da textura contendo um sprite :
protegido Sorteio override void ( GameTime GameTime ) { GraphicsDevice.Clear ( Color.CornflowerBlue ) ;//Adicione seu código de desenho aqui
spriteBatch.Begin (); SpriteTexture.DrawFrame ( SpriteBatch , objPos ); spriteBatch.End (); base.Draw ( GameTime );} public void DrawFrame (batch SpriteBatch , Vector2 screenPos ) { DrawFrame (batch , Frame, screenPos ) ;} DrawFrame public void (batch SpriteBatch , int quadro, Vector2 screenPos ) {int FrameWidth = myTexture.Width /FrameCount ; Retângulo sourceRect = new Rectangle ( FrameWidth * quadro, 0, FrameWidth , myTexture.Height ); batch.Draw ( myTexture , screenPos , sourceRect , Color.White , Rotação , origem, Escala, SpriteEffects.None , profundidade );}
5
compilar e criar o projeto. Quando você executar o projeto, você vai ver a animação criada com os quatro quadros de sua textura original .