Telepítés

Az XNA Game Studio használatához a következők kellenek:

Kitérő - Segédanyagok

XNA Game Studio 2.0 dokumentáció

C# Programming Guide

HLSL leírás

Tavalyi XNA gyakorlat anyagai

Mi az XNA?

Az XNA nem rövidítés, kifejtve: "XNA's Not Acronymed".

Az XNA egy eszközkészlet, amivel Windows alá vagy XBox 360-ra játékokat lehet fejleszteni.

Mi ebből az XNA Framework-kel fogunk foglalkozni.

XNA Framework

Az XNA Framework egy osztály könyvtár, ami .NET szerű osztályokat ad grafika, hang, beviteli eszközök, hálózati kapcsolatok, stb. elérésére és programozására.

Az órán elsősorban a Microsoft.Xna.Framework.Graphics névtér osztályairól lesz szó.

3D gyorstalpaló

Homogén koordináták

3D-s, [x,y,z] alakú koordináták helyett [x,y,z,w] alakú koordinátákkal dolgozunk. Ha w=0, akkor a jelölt pont a végtelenben van, ez megkönnyíti a számolást például metszéspontok keresésénél.

Az [x,y,z,w] homogén koordinátákkal jelölt projektív térbeli pont koordinátái az Euklideszi térben [x/w, y/w, z/w], ha w nem 0, a w=0, akkor nincs megfelelő pont az Euklideszi térben.

Transzformációk

A projektív tér transzformációi (eltolás, forgatás, léptékezés, nyírás, vetítés) 4x4-es mátrixokkal leírhatók.

Ezeket nem részletezzük, az XNA Matrix struktúrájának a metódusait fogjuk használni.

Több transzformáció egymás utáni alkalmazása megegyezik a mátrixaik szorzatának megfelelő transzformációval.

Ahogy nem ugyanazt adja általában, ha először forgatunk majd eltolunk valamit, vagy fordítva, így a transzformációs mátrixok szorzásának sorrendje sem mindegy (nem is lehetne, a mátrix szorzás nem kommutatív).

A transzformációk balról jobbra mennek végbe.

Példa: T eltolás, R forgatás. Balra: T*R, jobbra: R*T

Trafo

Jobbkéz, balkéz

Az XNA jobbkezes koordináta rendszert használ (az OpenGL-hez hasonlóan, szemben a DirectX-szel). A műveletek ehhez igazodnak, és a képernyőtérben a Z tengely "kifele" mutat.

Jobbkezes

Primitívek

A GPU által kirazoltatható primitívek a pont, a szakasz, a háromszög (néhány API alatt a négszög, de XNA-ban nem) és ezek speciális sorozatai.

Az XNA által támogatott primitívek: LineList, LineStrip, PointList, TriangleFan, TriangleList, TriangleStrip

Hello XNA!

Kiinduló project létrehozása

Visual Studio/File/New/Project

Visual C#/XNA Game Studio 2.0/Windows Game (2.0)

Kész! :)

Mit kapunk?

A Game osztály egy leszármazottját, két új adattaggal, és számos függvénnyel.