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
-
Exit – kilép a játékból
-
Run – ezt a metódust meghívva inicializálhatjuk a játékot, elkezdi a game loop-ot futtatni, és feldolgozni a játék eseményeit
-
SuppressDraw – felfüggeszti a Draw függvény hívásait a következő Update hívásáig
-
Tick – frissíti a játék óráját, és hívja az Update és Draw függvényeket
-
ResetElapsedTime – lenullázza az eltelt idő számlálóját
-
RunOneFrame – a játék futását elindítja egyetlen “tick” idejére (hibakeresés céljára használható)
-
ToString – () ez a fő formázásra használt függvény a .NET Framework-ben. Átalakít egy objektumot az azt reprezentáló string típusú objektummá, így megfelel a képernyőn történő megjelenítésre
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
-
Dispose – azonnal felszabadítja az osztály által lefoglalt, de nem menedzselt erőforrásokat
GraphicsDeviceManager osztály – a játék grafikus eszközökeinek konfigurációját és kezelését végzi
-
ApplyChanges – véglegesíti az eszközök tulajdonságaiban bekövetkezett változásokat,
-
ToggleFullScreen – teljes képernyős és ablakos üzemmód közötti váltást tesz lehetővé
-
FindBestDevice – megtalálja a legjobb eszközkonfigurációt az aktuális eszköz preferenciák alapján
-
RankDevices – rangsorolja az adott listában található eszközöket, a megadott preferenciáknak megfelelően
GameWindow osztály – a játékhoz rendelt “rendszer ablakot” jelöli
-
BeginScreenDeviceChange – képátmenetet kezdeményez (ablakos módból teljes képernyős módba, és fordítva)
-
EndScreenDeviceChange – befejezi a képátmenetet
-
SetSupportedOrientations – beállítja a támogatott képernyőorientációkat
MathHelper
-
Distance – visszaadja a két átadott érték különbségének abszolút értékét
-
Lerp – Lineáris interpolációt hajt végre két érték között
-
SmoothStep – harmadfokú interpoláció két érték között
-
WrapAngle – lecsökkenti az átadott szöget n és -n közötti értékre
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.
-
Cue.Apply3D – kiszámolja a 3D értékeket a AudioEmitter és az AudioListener objektumok között
-
Dispose – az objektum által lefoglalt, de nem kezelt erőforrásokat azonnal felszabadítja
-
Play – elindítja az előkészített, vagy előkészítés alatt álló cue-t
-
Pause – megállítja a lejátszás alatt lévő cue-t
-
Resume – a megállított cue lejátszását újraindítja
-
Stop – leállítja a lejátszás alatt lévő cue-t
Microphone – tulajdonságokat, metódusokat, mezőket és eseményeket biztosít a mikrofonról érkező adatok feldolgozására
-
GetData – a legfrissebb mikrofonnal rögzített adatot adja vissza
-
Start – elindítja az audio rögzítést a mikrofonon
-
Stop – leállítja az audio rögzítést a mikrofonon
-
GetSampleDuration - visszaadja az audiofelvétel hosszának értékét
-
GetSampleSizeInBytes – visszaadja a megadott rögzítési hosszhoz tartozó bájt-tömb méretét
SoundBank – Egy „sound bank”-ot reprezentál, amely nem más, mint cue-k gyűjteménye
-
Dispose – Az objektum által nem használt, de nem kezelt erőforrásokat azonnal felszabadítja Dispose – Az objektum által nem használt, de nem kezelt erőforrásokat azonnal felszabadítja
-
GetCue – visszaad egy cue-t a „Sound Bank” - ból
-
PlayCue – lejátszik egy cue-t (túlterheléses módszerrel lehetőség van 3D pozicionálási paraméterek megadására)
-
Finalize – lehetővé teszi, hogy az objektum megkísérelje az erőforrások felszabadítását, és egyéb takartítási műveleteket hajtson végre még a garbage collector előtt
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
-
Dispose – Az objektum által nem használt, de nem kezelt erőforrásokat azonnal felszabadítja
-
Update – az audio engine által igényelt ismétlődő műveleteket (ez a metódus irányítja az audio engine-t, minden frame-ben meg kell hívni)
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.
-
AvatarAnimation – metódusokat és tulajdonságokat biztosít az avatarok animálásához
-
Gamer – absztrakt alaposztály, játékosokat reprezentáló osztályok számára (a konkrét SignedInGamer és NetworkGamer típusok őse)
-
GamerCollection – egy játékosokból álló kollekciót reprezentál, ez a kollekció nem módosítható, az update meghívásával automatikusan frissül
-
GamerPrivileges – leírja, hogy a játékosok milyen műveleteket jogosultak végrehajtani
-
GamerProfile – profil beálításokat, a játékos adatait tartalmazza (ezek az adatok elérhetők lokálisan bejelentkezés esetén, és egy multiplayer session távoli játékosai által is)
-
Guide – hozzáférést biztost a Guide user interfészhez. Ez az interfész tartalmazza az üzenetablakokat, szövegbeviteli rendszert, és más alapvető interfész elemeket
-
SignedInGamer – egy játékost reprezentál a lokális rendszeren
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
-
AlphaTestEffect – egy konfigurálható effektust tartalmaz, amely támogatja az alpha tesztelést
-
BasicEffect – egy alap renderelő effektust tartalmaz
-
BlendState – tartalmazza az eszköz “blend state” értékét (blend state – szabályozza a színek keverését)
-
DisplayMode – a kijelző módját írja le
-
DisplayModeCollection – DisplayMode struktrúrák kollekcióját kezelhetjük ezzel az osztállyal
-
Effect – effektusok beállítására, lekérésére és technikák kiválasztására használhatjuk ezt az osztályt
-
EffectTechnique - egy effektus technikát reprezentál
-
GraphicsAdapter – metódusokat tartalmaz grafikus adapterek kezeléséhez
-
GraphicsResource – erőforrásokat kér le, és készít elő
-
Texture – egy textúrát reprezentál
-
Texture2D – texelek 2 dimenziós rácsát reprezentálja (texel: a texel a textúra legkisebb egysége, amelyet ki olvasni, vagy írni tud a GPU. Egy texel 1-4 komponensből állhat)
-
Texture3D – texelek 3 dimenziós kötetét reprezentálja
-
TextureCollection – Texture objektumok kollekciója
-
TextureCube – 6 darab 2 dimenziós textúra kollekciója (oldalanként egy). A kocka minden oldalának értéket kell adni, illetve az egyes dimenziókban a pixelek számának meg kell egyezni a textúrákban
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
-
GetCapabilities – visszaadja az Xbox 360 kontroller képességeinek listáját
-
GetState – a kontroller jelenlegi állapotát adja meg
-
SetVibration – az Xbox 360 rezgőmotor sebességét állítja
-
Pause – megállítja a lejátszás alatt lévő cue-t
Keyboard – lehetővé teszi a billentyűzet inputok feldolgozását
-
GetState – visszaadja a billentyűzet vagy chatpad aktuális állapotát
Mouse – biztosítja az egér pozíció és gombnyomás eseményének feldolgozását
-
GetState – visszaadja az egér jelenlegi állapotát (mind a pozíció, mind a gombnyomás információkat)
-
SetPosition – beállítja az egér kurzor pozícióját, (relatív módon, a bal-felső sarokhoz viszonyítva)
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
-
GetCapabilities – az érintőkijelző-képesség lekérdezésére szolgál az adott eszközön
TouchPanelCapabilities tc = TouchPanel.GetCapabilities();
if(tc.IsConnected)
{
return tc.MaximumTouchCount;
}
A fenti példakód segítségével megállapíthatjuk, hogy az érintőkijelző elérhető-e,
illetve, hogymaximálisan mennyi érintést tud egyidejűleg lekezelni.
-
GetState – az érintőkijelző jelenlegi állapotát kérdezhetjük le.
Visszatérési értéke egy TouchCollection struktúra, ami TouchLocation struktúrák gyűjteménye. Minden egyes TouchLocation tartalmazza az érintés pozícióját és az állapotát (Invalid, Moved, Pressed, Released)
TouchCollection touchCollection = TouchPanel.GetState();
foreach (TouchLocation tl in touchCollection)
{
if ((tl.State == TouchLocationState.Pressed)
|| (tl.State == TouchLocationState.Moved))
{
// add sparkles based on the touch location
sparkles.Add(new Sparkle(tl.Position.X,
tl.Position.Y, ttms));
}
}
-
ReadGesture – az érintőképernyőn rendelkezésre álló gesztust érhetjük így el (a TouchPanel.IsGestureAvailable tulajdonság értéke igaz, ha további gesztusok állnak rendelkezésre)
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
-
Album – hozzáférést biztosít a media library albumaihoz.
Fontosabb property-k:
Artist – megadja az album előadóit
Duration – megadja az album hosszát
Genre – az album stílusát adja meg
Name – az album nevét adja visszanéztem
Songs – egy SongCollection-t ad meg, ami tartalmazza az albumban található
-
AlbumCollection – a media library albumainak gyűjteménye
-
Artist – a media library artist információihoz enged hozzáférést
Fontosabb property-k:
Albums – az előadóhoz tartozó AlbumCollection-t adja vissza
Name – az előadó neve
Songs – az előadóhoz tartozó dalokat tartalmazó SongCollection-t adja meg
-
MediaLibrary – hozzáférést biztosít dalokhoz, lejátszási listákhoz, képekhez az eszközön található media library-ban
-
MediaPlayer – metódusokat és property-ket biztosít dalok lejátszáshoz, szüneteltetéshez, újraindításhoz,és megállításához. Lehetővé tesz többféle lejátszási módot, hangerőállítást, és különböző megjelenítési módokat
-
MediaSource – metódusokat és property-ket biztosít a média forrásának (vagy forrásainak) eléréséhez
-
Picture – a media library képeihez biztosít hozzáférést
-
Playlist – hozzáférést biztosít a media library-ben található playlistekhez
-
Song – a media library egyes dalaihoz férhetünk hozzá segítségével
-
Video – egy videót reprezentál (a media library-ben)
-
VideoPlayer – metódusokat és property-ket biztosít a videók lejátszáshoz, szüneteltetéséhez, lejátszásának folytatásához, és leállításához.
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
-
CreateDirectory – egy új könyvtárat hoz létre a StorageContainer hatókörében
-
CreateFile – egy új fájlt hoz létre a meghatározott elérési úttal a StorageContainerben
-
DeleteDirectory – segítségével a StorageContainer hatókörében kitörölhetünk egy könyvtárat
-
DeleteFile – kitöröl egy fájlt a StorageContainerben
-
DirectoryExists – segítségével eldönthetjük, hogy az elérési út valós könyvtárra mutat-e a StorageContainerben
-
Dispose – a lefoglalt, de nem kezelt erőforrásokat azonnal felszabadítja
-
FileExist – segítségével eldönthetjük, hogy az elérési út egy a StorageContainer-ben létező fájlra mutat-e
-
OpenFile – megnyitja a meghatározott útvonal alapján a StorageContainer egy fájlját
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
-
FreeSpace (property)– megadja az eszköz szabad kapacitását
-
IsConnected (property) – megadja, hogy az eszköz csatlakoztatva van-e vagy sem
-
TotalSpace (property) – az eszköz teljes tárterületét adja meg
-
BeginOpenContainer – megkezdi egy StorageContainer megnyitását, amely tartalmazza a meghatározott fájlt
-
DeleteContainer – kitöröl egy konténert, anélkül, hogy megnyitná
-
EndOpenContainer – befejezi a StorageContainer megnyitását
-
BeginShowSelector – a tárolóeszköz választót teszi láthatóvá
-
EndShowSelector – megszünteti a tárolóeszköz választó láthatóságát
StorageDeviceNotConnectedException – ez a kivétel akkor kerül kiváltásra, ha a hivatkozott StorageDevice nincs csatlakozott állapotban
-
GetState – visszaadja az egér jelenlegi állapotát (mind a pozíció, mind a gombnyomás információkat)
-
SetPosition – beállítja az egér kurzor pozícióját, (relatív módon, a bal-felső sarokhoz viszonyítva)