Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako animovať v XNA

XNA Game Studio ( XNA ) je programovacie prostredie vyvinuté spoločnosťou Microsoft , ktorá vám pomôže vytvoriť komplexný hry pre počítače , mobilné telefóny a Xbox konzol v rámci Visual Studio 2010 programovacieho platforme . Animácie škriatkov a modely v XNA je dôležité , pretože jednoduchý , animovaný , dvoch - dimenzionální ( 2 - D ) sprite je veľký rozdiel , keď ho zahrnúť do svojich hier . Veci , ktoré budete potrebovať
Visual Studio 2010
256 × 64 textúra , obsahujúci štyri rámčeky rovnakej veľkosti .
Zobraziť ďalšie inštrukcie Cestuj 1

Otvorte aplikáciu Visual Studio 2010 a ísť do XNA Game konstruktoru . Vytvorte novú inštanciu " AnimatedTexture " triedy pomocou tohto ukážkový kód :

súkromné ​​AnimatedTexture SpriteTexture ; súkromné ​​const float rotácie = 0 ; súkromné ​​const float Scale = 2.0F ; súkromné ​​const float Hĺbka = 0.5f ; verejné Game1 ( ) {

SpriteTexture = new AnimatedTexture ( Vector2.Zero , rotácia , mierka , hĺbka ) , # ak ZUNETargetElapsedTime = TimeSpan.FromSeconds ( 1 /30,0 ) ; # endif }

Note že snímacia frekvencia musí byť 30 snímok za sekundu ( fps ) , ak máte v pláne používať animácie na Zune . V tomto príklade , " ( 0,0 ) , " je textúra je pôvod . Textúra nemá rotáciu , je v mierke " 2 " a má hĺbku " 0.5 . "
2

Vložte štruktúru obsahujúcu štyri rámčeky a rozdeliť ju do animácie rámčeky používať tento ukážkový kód :

súkromné ​​výrez výrez , súkromná Vector2 objPos ; súkromné ​​const int Rámy = 4 ; súkromné ​​const int FramesPerSec = 2 ; protected override void LoadContent ( ) { spriteBatch = new spriteBatch ( GraphicsDevice ) ; SpriteTexture . zaťaženie ( Content , " objectanimated " , Rámy , FramesPerSec ) , výrez = graphics.GraphicsDevice.Viewport ; shipPos = new Vector2 ( viewport.Width /2 , viewport.Height /2 ) ; }

" AnimatedTexture " trieda načíta textúru a čerpá ju do rámov . Tento príklad nakreslí dve snímky za sekundu , po dobu dvoch sekúnd . Nahradiť " objectanimated " s názvom vášho sprite majetku .
3

Určte snímky animácie sa zobrazí pomocou metódy " Update " . Použite tento kód ako napríklad : .

Protected override void Update ( GameTime GameTime ) { float uplynulej = ( float ) gameTime.ElapsedGameTime.TotalSeconds ;//Pridať hernú logiku tu

SpriteTexture . UpdateFrame ( uplynulé ) ; base.Update ( GameTime ) ; } public void UpdateFrame ( float uplynulé ) { if ( pozastavená ) return ; TotalElapsed + = uplynulý , ak ( TotalElapsed > TimePerFrame ) { Rám + + ; Frame = Frame % framecount ; TotalElapsed - = TimePerFrame ; } }

metóda " UpdateFrame " The AnimatedTexture je obdrží uplynulej sekúnd medzi aktualizáciami a spracováva zobrazení jednotlivých obrázkov
4

Nakreslite sprite v hre je . " Draw " metódu pomocou funkcie " SpriteBatch.Draw " na " AnimatedTexture " objekt . Použite tento ukážkový kód k tomu správne subrectangle textúry obsahujúci sprite :

protected override void Draw ( GameTime GameTime ) { GraphicsDevice.Clear ( Color.CornflowerBlue ) ;//Pridať kreslenie kód tu

spriteBatch.Begin ( ) ; SpriteTexture.DrawFrame ( spriteBatch , objPos ) ; spriteBatch.End ( ) ; base.Draw ( GameTime ) ; } public void DrawFrame ( spriteBatch šarže , Vector2 screenPos ) { DrawFrame ( šarže , rám , screenPos ) ; } public void DrawFrame ( SpriteBatch šarže , int rám , Vector2 screenPos ) { int frameWidth = myTexture.Width /framecount , obdĺžnik sourcerect = new Rectangle ( frameWidth * rám , 0 , frameWidth , myTexture.Height ) ; batch.Draw ( myTexture , screenPos , sourcerect , Color.White , rotácia , Origin , Scale , SpriteEffects.None , hĺbka ) ; }
5

Kompilácia a zostavenie projektu . Pri spustení projektu , uvidíte animáciu vytvorenú štyrmi rámy z pôvodnej textúry .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené