The XNA Game Studio ( XNA ) er et programmeringsspråk miljø som er utviklet av Microsoft som hjelper deg å lage komplekse spill for datamaskiner , mobiltelefoner og Xbox -konsoller fra i Visual Studio 2010 programmering plattform . Animere sprites og modeller i XNA er viktig fordi en enkel , animert , to- dimensjonale (2D ) sprite gjør en stor forskjell når du inkludere det i spillene dine . Du trenger
Visual Studio 2010
A 256 × 64 tekstur som inneholder fire bilder av samme størrelse .
Vis flere instruksjoner
en
Åpen Visual Studio 2010 og gå til XNA spillets konstruktør . Opprett en ny forekomst av " AnimatedTexture " klasse ved hjelp av denne eksempelkode : en
privat AnimatedTexture SpriteTexture ; private const float rotasjon = 0; private const float Scale = 2.0F , private const float Dybde = 0.5f ; offentlig Spill1 ( ) {
SpriteTexture = new AnimatedTexture ( Vector2.Zero , rotasjon , skalering , Dybde) ; # hvis ZUNETargetElapsedTime = TimeSpan.FromSeconds ( 1 /30,0) ; # endif }
Note at bildefrekvensen må være 30 bilder per sekund ( fps ) hvis du har tenkt å bruke animasjon på Zune . I dette eksempelet "( 0,0) " er tekstur opprinnelse . Teksturen har ingen rotasjon , er på en skala fra "2" og har en dybde på "0,5 ".
2
Legg tekstur som inneholder de fire rammer og del den i animasjonsdelbilder av bruker denne eksempelkode : en
privat viewport synsfeltet , private Vector2 objPos ; private const int Rammer = 4; private const int FramesPerSec = 2 ; beskyttet overstyre void LoadContent ( ) { spriteBatch = new spriteBatch ( GraphicsDevice ) ; SpriteTexture . belastning (Content , " objectanimated " , Rammer, FramesPerSec ) ; viewport = graphics.GraphicsDevice.Viewport ; shipPos = new Vector2 ( viewport.Width /2 , viewport.Height /2 ) ;}
" AnimatedTexture " class laster tekstur og trekker det inn i rammer. Dette eksemplet trekker to bilder per sekund , i to sekunder . Erstatt " objectanimated " med navnet på din sprite eiendel.
3
Bestem animasjon rammer for å vise ved å bruke " Update "-metoden . Bruk denne koden som et eksempel : en
beskyttet overstyre void Update ( GameTime Gametime ) { float gått = ( float) gameTime.ElapsedGameTime.TotalSeconds ;//Add spillet logikk her
SpriteTexture . . UpdateFrame ( over) ; base.Update ( gametime ) ;} public void UpdateFrame (float forløpt ) { if ( Pause ) tilbake; TotalElapsed + = utløpt , hvis ( TotalElapsed > TimePerFrame ) { Frame + +; Frame = Ramme % framecount ; TotalElapsed - = TimePerFrame ;} }
AnimatedTexture er " UpdateFrame "-metoden mottar gått sekunder mellom oppdateringer og håndterer visning av ulike rammer
4
Tegn sprite i spillets . " Tegn "-metoden ved å bruke " SpriteBatch.Draw "-funksjonen på " AnimatedTexture " objekt . Bruk denne prøven kode for å trekke riktig subrectangle av tekstur som inneholder en sprite : en
beskyttet override void Draw ( GameTime Gametime ) { GraphicsDevice.Clear ( Color.CornflowerBlue ) ;//Legg tegningen din kode her
< p> 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 ramme , Vector2 screenPos ) { int FrameWidth = myTexture.Width /framecount ; rektangel sourcerect = new rektangel ( FrameWidth * ramme , 0 , FrameWidth , myTexture.Height ) ; batch.Draw ( myTexture , screenPos , sourcerect , Color.White , Rotasjon , Origin, Scale , SpriteEffects.None , Dybde) ;}
5
Kompiler og bygge prosjektet . Når du kjører prosjektet , vil du se animasjonen opprettet med de fire rammene fra den opprinnelige tekstur .