|
|
|
|
|
|
Další informace
|
|
|
|
|
Poslední príspevky na fóru
|
|
|
|
|
Ads
|
|
|
|
|
|
|
|
|
|
|
|
|
Vítejte v první části tohoto XNA tutoriálu. Tento tutoriál je zaměřen na lidi, kteří nemají žádné zkušenosti s 3D programováním a rádi by viděli výsledky v co nejkratším čase. Uvolněn v prosinci 2006 je XNA nový jazyk, stavějící na DirectX a ulehčující programování her.
Programy potřebné pro psaní vašeho vlastního XNA kódu jsou kompletně zdarma:
Microsoft XNA game studio, programovací prostredí (zdarma) ( odkaz) Microsoft Visual Studio C# Express (zdarma) ( odkaz)
Se všemi nainstalovanými programy mužete pustit XNA game studio, které najdete v menu Start. Bežte do File menu a vyberte New Project. Jako šablonu projektu vyberte samozrejme Windows game (XNA). Nastavením pro Xbox360 se budeme zabývat pozdeji. Vyplnte jméno projektu a stisknete OK.
Malý projekt je vytvoren a napravo mužete videt už pripraveny 2 soubory: Game1.cs a Program.cs. Mužete se podívat na kód v souborech kliknutím pravým tlacítkem myši a vybrat View code. Váš program zacíná v Program.cs, v metode Main. Main metoda jednoduše volá kód v Game1.cs. V Program.cs není nic co by bylo potreba zmenit.
Otevrete soubor Game1.cs. Ackoliv je popsán komentári, urcite se bude hodit, když si neco o strukture povíme:
Hlavní metoda Game1() je volána pri startu. Nacítá nekolik promených potrebných pro XNA framework. Metoda Initialize je volána jednou a to pri startu. Do této metody budeme pridávat náš spuštecí kód Metoda (Un)LoadGraphicsContent je používaná pro vkládání média, jako naprklídat obrázky, objekty a zvuk. Metoda Update je volána každý frame pred vykreslením. Sem budeme psát kód, který bude potreba neustále obnovovat po celý život programu, jako napr. ctení stisku klávesnice a z toho vyplívající zmena polohy teles na scéne. Metoda Draw je volána, tak casto jak váš pocítac (konkrétne grafická karta) dovolí. Zde budeme psát kód, který vykreslí aktualní scénu na obrazovku.
Jak mužete videt, tak zde je už pripravený kód k vytvorení okna. Tento kód byl vytvoren automaticky. Když si spustíte váš projekt stisknutím F5, tak vám už vyskocí krásné modré okno.
Jdeme na to. Pridáme odkaz na grafické zarízení (graphics device). Krátce, device je prímý odkaz na váš grafický adaptér. Je to objekt dávající vám prímý prístup k vašemu hardwaru uvnitr pocítace. Zaprvé, deklarujeme tuto promenou, pridáním tohoto kódu navrch vaší trídy, presneji nad metodu Gam1():
GraphicsDevice device;
Dále, využijeme této promenné. Vytvoríme si malou metodu SetUpXNADevice. Vložte ji nekam do stredu stránky. Já jsem ji vložil za inicializacní metodu:
private void SetUpXNADevice() { device = graphics.GraphicsDevice; graphics.PreferredBackBufferWidth = 500; graphics.PreferredBackBufferHeight = 500; graphics.IsFullScreen = false; graphics.ApplyChanges(); Window.Title = "Riemer's XNA Tutorials -- Series 1"; }
První rádek ukládá odkaz na vaše grafické zarízení v promenné device. Dále, jsme nastavili rozmery backbuffer, který bude obsahovat to, co vykreslíme na obrazovku. Také jsme si nastavili, aby se nám program pouštel v okne. Poslední rádek nastavuje titulek našeho okna. Pokud chceme tuto metodu provést na startu, musíme ješte pridat volání této metody dovnitr naší inicializacní metody:
SetUpXNADevice();
Když spustíte tento kód, meli byste videt okno o rozmerech 500x500 pixelu s titulkem jaký jste si nastavili.

Click here to go to the forum on this chapter!
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/riemers/public_html/chz/Tutorials/XNA/Csharp/Series1/Starting_a_project.php(9) : eval()'d code(35) : eval()'d code on line 292
Po každém tutoriálu uvedu celý cistý kód se zvýraznenými zmenami v aktuálním tutoriálu. Oddelal jsem pryc všechny komentáre, takže to vypadá lépe.
#region Using Statements using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; #endregion namespace XNAtutorial { public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; ContentManager content;
GraphicsDevice device;
public Game1() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); } protected override void Initialize() { base.Initialize();
SetUpXNADevice();
}
private void SetUpXNADevice() { device = graphics.GraphicsDevice; graphics.PreferredBackBufferWidth = 500; graphics.PreferredBackBufferHeight = 500; graphics.IsFullScreen = false; graphics.ApplyChanges(); Window.Title = "Riemer's XNA Tutorials -- Series 1"; }
protected override void LoadGraphicsContent(bool loadAllContent) { if (loadAllContent) { } } protected override void UnloadGraphicsContent(bool unloadAllContent) { if (unloadAllContent == true) { content.Unload(); } } protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); base.Update(gameTime); } protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.CornflowerBlue); base.Draw(gameTime); } } }
- Website design & XNA + DirectX code : Riemer Grootjans - ©2003 - 2008 Riemer Grootjans
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007 - 2008 MVP Award DirectX - XNA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Podporte tuto stránku jakákoliv cástka je vítaná!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|