XNA

Fontosabb XNA névterek, osztályok és metódusaik

Microsoft.Xna.Framework

Gyakran használt játékosztályokat tartalmaz (időzítők és “game loop”-ok, stb) Game osztály - alap grafikus eszköz inicializálást, game logic-ot és kódrenderelést biztosít

GameComponent osztály – ez az osztály lehetővé teszi a játék funkcionalitásának bővítését moduláris módon. Új játékkomponenst létrehozva azt a GameComponent - vagy ha grafikus tartalmat rajzol, akkor a DrawableGameComponent - osztályból származtatva, majd “game logic”-ot, kódrenderelést adhatunk hozzá a GameComponent.Update , a DrawableGameComponentDraw, és a GameComponent.Initialize metódusok túlterheléses alkalmazásával GraphicsDeviceManager osztály – a játék grafikus eszközökeinek konfigurációját és kezelését végzi GameWindow osztály – a játékhoz rendelt “rendszer ablakot” jelöli MathHelper

Microsoft.Xna.Framework.Audio

alacsony szintű API metódusokat tartalmaz, amelyekkel betölteni és manipulálni tudunk XACT-ben készített projekteket, és “content” fájlokat a későbbi lejátszáshoz

Cue – hangok lejátszásához szükséges metódusokat bocsát rendelkezésünkre A cue-k azok a hangminták, amelyeket a programozók alkalmaznak a gyakran használt hangeffektusoknál (lépések hangja, lövések, stb). Egy cue több hangeffektusból is állhat, ilyenkor cue lejátszásakor a effektusok sorozatát játsszuk le. Az Audio API-t és cue hivatkozásokat használatának legfőbb előnye, hogy így a fejlesztő csapat audio designere szabadabban tudja változtatni a játék hangeffektusait, és kipróbálhat többféle változatot is, anélkül, hogy programozó beavatkozására lenne szüksége.

Microphone – tulajdonságokat, metódusokat, mezőket és eseményeket biztosít a mikrofonról érkező adatok feldolgozására SoundBank – Egy „sound bank”-ot reprezentál, amely nem más, mint cue-k gyűjteménye AudioEngine – az audio engine metódusait használhatjuk alkalmazásainkban az alapvető audio objektumok példányosítására és manipulálására

Microsoft.Xna.Framework.Content

a Content Pipeline futás idejű komponenseit tartalmazza

Microsoft.Xna.Framework.Design

egységes típuskonverziós módokat kínál fel (ez a névtér csak Windows-os fejlesztésekben használható)

Microsoft.Xna.Framework.GamerServices

olyan osztályokat tartalmaz, amelyek számos a játékossal kapcsolatban álló szolgáltatást biztosítanak. Ezek a szolgáltatások közvetlenül a játékossal kommunikálnak, illetve API-kat tartalmaz beviteli eszközökhöz és a profil adatok eléréséhez.

Microsoft.Xna.Framework.Graphics

alacsonyszintű API hívások osztályai, amelyek lehetővé teszik a 3D megjelenítés esetén hardveres gyorsítást

Microsoft.Xna.Framework.Graphics.PackedVector

egységes típuskonverziós módokat kínál fel (ez a névtér csak Windows-os fejlesztésekben használható)

Microsoft.Xna.Framework.Input

Azokat az osztályokat tartalmazza, amelyek segítségével inputokat fogadhatunk billentyűzetről, egérről és Xbox 360 kontrollerekről.

GamePad – lehetővé teszi a user interakciót az Xbox360 kontroller használatával, illetve a kontroller rezgőmotorjainak kezelését

Keyboard – lehetővé teszi a billentyűzet inputok feldolgozását Mouse – biztosítja az egér pozíció és gombnyomás eseményének feldolgozását

Microsoft.Xna.Framework.Input.Touch

olyan osztályokat tartalmaz, amelyek lehetővé teszik az érintés alapú adatbevitelt az ilyen képességekkel rendelkező eszközökön

TouchPanel – az érintőképernyő információinak elérésére használhatjuk

Microsoft.Xna.Framework.Media

osztályokat tartalmaz a dalok, albumok, lejátszási listák, és képek kezeléséhez (felsorolás, lejátszás, nézegetés)

Néhány fontosabb osztály

Microsoft.Xna.Framework.Net

azokat az osztályokat tartalmazza, amelyek lehetővé teszi az Xbox LIVE használatát, a többjátékos üzemmódot, és hálózatkezelést az XNA Framework játékaiban

AvailableNetworkSession: segítségével egy listát kaphatunk az AvailableNetworkSession példányokról NetworkSession létrehozása, majd csatlakoztatása egy rendelkezésre álló network session-höz

NetworkSession session; session = NetworkSession.Join(availableSessions[selectedSessionIndex]);
A NetworkSession számos property-vel rendelkezik. Az összes játékost tartalmazó collectiont a networkSession.AllGamers property írja le. Ez az információ minden a session-höz csatlakozó eszközön. Ebben a listában a játékosok lehetnek lokális (azonos eszközön például osztott képernyőn játszó), vagy távoli felshasználók.
A NetworkSessionLocalGamers ezzel szemben az eszközön jelenlévő összes lokális játékost listáját adja meg, a NetworkSession.RemoteGamers pedig értelemszerűen a nem lokális játékosokat.
A session létrehozása után feliratkozhatunk a bármelyik session eventre. A session-nek a játék állapotától függően többféle eseménye lehet. A GameStarted és GameEnded események a lobby és a gameplay közti állapotátmenetek esetén, GamerJoined és GamerLeft események, mikor a játékos csatlakozik, illetve elhagyja a játékot, HostChanged a host változása esetén, és SessionEnded a session zárásakor.
session.GamerJoined += new EventHandler(session_GamerJoined); session.GamerLeft += new EventHandler(session_GamerLeft); session.GameStarted += new EventHandler(session_GameStarted); session.GameEnded += new EventHandler(session_GameEnded); session.SessionEnded += new EventHandler(session_SessionEnded);
Ha a host session bezárásárának feltételei fennállnak, akkor a NetworkSession.EndGame metódussal meghívásával tehetjük meg.
Az alábbi példában a hostnak az ESC gomb, vagy a Back nyomógomb megnyomásával jelzi a játékos, hogy szeretne kilépni a játékból. A host ellenőrzi, hogy vannak-e csatlakozva más játékosok. Amennyiben nem, úgy bezárja a sessiont.
if ( IsButtonPressed(GamePadButton.B ) || IsButtonPressed( GamePadButton.Back ) ) { if (session != null) { if (session.AllGamers.Count == 1) { session.EndGame(); session.Update(); } } }

Microsoft.Xna.Framework.Storage

azokból az osztályokból áll, amelyek támogatást biztosítanak a fájlok írásához, olvasásához

StorageContainer – a storage fájljainak egy logikai collection-jét reprezentálja

StorageDevice – egy olyan tárolóegységet reprezentál, amely felhasználói adatok tárolására alkalmas, mint például memóriakártya vagy merevlemez StorageDeviceNotConnectedException – ez a kivétel akkor kerül kiváltásra, ha a hivatkozott StorageDevice nincs csatlakozott állapotban