De XNA Game Studio ( XNA ) is een programmeeromgeving ontwikkeld door Microsoft die u helpt complexe games voor computers , mobiele telefoons en Xbox- consoles uit binnen de Visual Studio 2010 programmering platform te creëren . Animeren sprites en modellen in XNA is belangrijk omdat een eenvoudige , geanimeerde , twee - dimensionale ( 2 - D ) sprite maakt een groot verschil als je het in je games. Wat je nodig hebt Visual Studio 2010 A 256 × 64 textuur met vier frames van dezelfde grootte . Toon Meer Aanwijzingen Open Visual Studio 2010 1 en ga naar constructeur van de XNA game . Maak een nieuw exemplaar van de " AnimatedTexture " class met behulp van deze voorbeeldcode : prive AnimatedTexture SpriteTexture ; private const float Rotation = 0 ; private const float Schaal = 2.0F ; private const float Diepte = 0.5F ; openbare Game1 ( ) { SpriteTexture = new AnimatedTexture ( Vector2.Zero , Rotation , Scale , diepte ) ; # als ZUNETargetElapsedTime = TimeSpan.FromSeconds ( 1 /30,0 ) ; # endif } notitiekaarten dat de framesnelheid moet 30 frames per seconde ( fps ) als u van plan bent om je animatie te gebruiken op Zune . In dit voorbeeld is " ( 0,0 ) " is oorsprong texture 's . De textuur heeft geen rotatie , is op een schaal van " 2 " en heeft een diepte van " 0.5 . " Kopen van 2 Laad de structuur met de vier frames en verdeel het in animatiekaders door met behulp van deze voorbeeldcode : prive viewport viewport ; prive vector2 objPos ; private const int Frames = 4 ; private const int FramesPerSec = 2 ; beschermde override void LoadContent ( ) { spriteBatch = new spriteBatch ( GraphicsDevice ) ; SpriteTexture . belasting ( Content , " objectanimated " , Frames , FramesPerSec ) ; viewport = graphics.GraphicsDevice.Viewport ; shipPos = new vector2 ( viewport.Width /2 , viewport.Height /2 ) ; } " AnimatedTexture " klasse laadt de textuur en trekt het in frames . Dit voorbeeld tekent twee frames per seconde , twee seconden . Vervang " objectanimated " met de naam van uw sprite actief. 3 Bepaal de animatie frames weer te geven met behulp van de "Update " -methode . Gebruik deze code als voorbeeld : beschermd overschrijven leegte Update ( GameTime GameTime ) { float verstreken = ( float ) gameTime.ElapsedGameTime.TotalSeconds ;//Voeg je spel logica hier SpriteTexture . . UpdateFrame ( verstreken ) ; base.Update ( gametime ) ; } public void UpdateFrame ( vlotter verlopen ) {if ( Onderbroken ) return ; TotalElapsed + = verstreken ; if ( TotalElapsed > TimePerFrame ) { Frame + + ; Frame = Frame % framecount ; TotalElapsed - = TimePerFrame ; } } " UpdateFrame " -methode de AnimatedTexture 's ontvangt de verstreken seconden tussen de updates en zorgt voor de weergave van de verschillende frames 4 Teken de sprite in het spel . methode "Draw " met behulp van de functie " SpriteBatch.Draw " op de " AnimatedTexture " object . Gebruik deze voorbeeldcode om correcte subrectangle van de textuur met een sprite te tekenen : beschermd override void Draw ( GameTime GameTime ) { GraphicsDevice.Clear ( Color.CornflowerBlue ) ;//Voeg je tekening code hier spriteBatch.Begin ( ) ; SpriteTexture.DrawFrame ( spriteBatch , objPos ) ; spriteBatch.End ( ) ; base.Draw ( gametime ) ; } public void DrawFrame ( spriteBatch batch , vector2 screenPos ) { DrawFrame ( batch , Frame , screenPos ) ; } public void DrawFrame ( SpriteBatch batch , int frame, vector2 screenPos ) { int steigerbreedte = myTexture.Width /framecount ; Rectangle sourceRect = new Rectangle ( steigerbreedte * frame, 0 , steigerbreedte , myTexture.Height ) ; batch.Draw ( myTexture , screenPos , sourceRect , Color.white , Rotatie , Oorsprong , Scale , SpriteEffects.None , diepte ) ; } 5 compileren en bouwen van het project . Wanneer u het project uit te voeren , zal je de animatie gemaakt met de vier frames van uw oorspronkelijke textuur te zien .
|