The XNA Game Studio ( XNA ) är en programmeringsmiljö som utvecklats av Microsoft som hjälper dig att skapa komplexa spel för datorer , mobiltelefoner och Xbox-konsoler inifrån Visual Studio 2010 programmering plattform . Animera sprites och modeller i XNA är viktigt eftersom en enkel , animerade , tvådimensionella ( 2 - D ) sprite gör stor skillnad när du inkludera det i dina spel . Saker du behöver Review, Visual Studio 2010 Review, en 256 × 64 konsistens innehållande fyra ramar i samma storlek .
Visa fler instruktioner
1
Öppna Visual Studio 2010 och gå till XNA Game konstruktor . Skapa en ny instans av " AnimatedTexture " klass med denna exempelkod :
privat AnimatedTexture SpriteTexture , privat const float Rotation = 0 ; privat const float Scale = 2.0F , privat const float Djup = 0.5f ; offentliga game1 ( ) {
SpriteTexture = ny AnimatedTexture ( Vector2.Zero , Rotation , Skala , djup ) , # om ZUNETargetElapsedTime = TimeSpan.FromSeconds ( 1 /30,0 ) , # endif }
Anmärkning att bildhastigheten ska vara 30 bildrutor per sekund ( fps ) om du planerar att använda din animation på Zune . I detta exempel " (0,0) " är textures ursprung . Texturen har ingen rotation , är på en skala från " 2 " och har en djup " 0.5 . "
2
Ladda texturen innehåller fyra ramar och dela upp den i animeringsbildrutor genom använda denna exempelkod :
privat Viewport vyport , privata Vector2 objPos , private const int Ramar = 4 ; privat const int FramesPerSec = 2 ; skyddat override void LoadContent ( ) { spriteBatch = ny spriteBatch ( GraphicsDevice ) ; SpriteTexture . load ( Content , " objectanimated " , Ramar , FramesPerSec ) ; visningsområdet = graphics.GraphicsDevice.Viewport , shipPos = ny Vector2 ( viewport.Width /2 , viewport.Height /2 ) ;}
" AnimatedTexture "klass laddar textur och drar det i ramar . Detta exempel drar två bildrutor per sekund , under två sekunder . Ersätt " objectanimated " med namnet på din sprite tillgång. Bestäm animeringsbildrutor ska visas med hjälp av " Update " metoden
3
. Använd denna kod som ett exempel :
skyddade åsidosätta void Update ( GameTime GameTime ) { float förflutit = ( float ) gameTime.ElapsedGameTime.TotalSeconds ;//Lägg ditt spel logik här
SpriteTexture . . UpdateFrame ( förflutit ) , base.Update ( GameTime ) ;} public void UpdateFrame ( float förflutit ) {if ( pausad ) avkastning ; TotalElapsed + = förflutit , om ( TotalElapsed > TimePerFrame ) { Frame + + ; Frame = Ram % framecount ; TotalElapsed - = TimePerFrame ; } }
AnimatedTexture s " UpdateFrame " metoden erhåller förflutit sekunder mellan uppdateringarna och hanterar visningen av de olika ramar
4
Rita spriten i spelets . " Rita " metoden genom att använda " SpriteBatch.Draw " -funktionen på " AnimatedTexture " objektet . Använd denna exempelkod för att dra korrekta subrectangle av texturen innehåller en sprite :
skyddat override void Draw ( GameTime GameTime ) { GraphicsDevice.Clear ( Color.CornflowerBlue ) ;//Lägg din ritning koden här
spriteBatch.Begin ( ) ; SpriteTexture.DrawFrame ( spriteBatch , objPos ) , spriteBatch.End ( ) ; base.Draw ( GameTime ) ;} public void DrawFrame ( spriteBatch parti , Vector2 screenPos ) { DrawFrame ( batch , Frame , screenPos ) ; } public void DrawFrame ( SpriteBatch parti , int ram , Vector2 screenPos ) { int FrameWidth = myTexture.Width /framecount , Rektangel sourceRect = new Rectangle ( FrameWidth * ram , 0 , FrameWidth , myTexture.Height ) ; batch.Draw ( myTexture , screenPos , sourceRect , Color.white , Rotation , Origin , Skala , SpriteEffects.None , djup ) ; }
5
Kompilera och bygga projektet . När du kör projektet , kommer du att se animationen skapas med de fyra ramar från din ursprungliga konsistens .