XNA for C#
DirectX 9 for C#
DirectX 9 for C++
DirectX 9 for VB
Forum
   2D Series finished!
My Book: Out Now!
      
       Go to section on this site

Další informace


Poslední príspevky na fóru

 error x3000:syntax error
  Posted by: Anonymous
  When: 02/09/2010 at 06:55:17

 Reflection problem in corners ...
  Posted by: Anonymous
  When: 31/08/2010 at 20:53:30

 OcTree Question
  Posted by: radulph
  When: 31/08/2010 at 18:00:04

 model problems
  Posted by: Archenon
  When: 30/08/2010 at 05:54:27

 Changing computer breaks my game
  Posted by: Archenon
  When: 30/08/2010 at 05:49:50

 model problems
  Posted by: muffinman
  When: 28/08/2010 at 16:58:10

 Vertices problem
  Posted by: Anonymous
  When: 27/08/2010 at 15:35:36

 Changing computer breaks my game
  Posted by: radulph
  When: 27/08/2010 at 07:12:24

 effects file and XNA 4.0 (Beta)
  Posted by: radulph
  When: 26/08/2010 at 06:33:33

 Changing computer breaks my game
  Posted by: radulph
  When: 26/08/2010 at 06:27:59


Ads

Začátek projektu

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.




    DirectX Tutorial 1 - Začátek projektu

    If you appreciate the amount of time I spend creating and updating
    these pages, feel free to donate -- any amount is welcome !



    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 303



    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);
             }
         }
     }


    Google
     
    Webwww.riemers.net


    If you appreciate the amount of time I spend creating and updating
    these pages, feel free to donate -- any amount is welcome !



    - Website design & XNA + DirectX code : Riemer Grootjans -
    ©2003 - 2008 Riemer Grootjans
  • Translations

    This site in English
    This site in Korean
    This site in Czech

    Microsoft MVP Award



    2007 - 2009 MVP Award
    DirectX - XNA

    Contents

    Tutoriály
    XNA používající C#
    Series 1: Terrain
    Začátek projektu
    Soubor Effect
    Vykreslení prvního trojúhelníku
    -- Expand all --


    Thank you!

    Podporte tuto stránku
    jakákoliv cástka je vítaná!

    Zustante informováni

    I don't have the time to keep a News section, so stay informed about the updates by clicking on this RSS file!