[ < ]

[ > ]

 

[ << ]

[ Up ]

[ >> ]

 

 

 

 

[Top]

[Contents]

[Index]

>[Index]

]

4.1.1 Az alapvető Crystal Space fogalmak

A Crystal Space alapú alkalmazások írásához tisztában kell lenned néhány alapvető fogalommal. Itt egy rövid áttekintést adunk minden olyan fontos dologról, amit ismerned kell ahhoz, hogy Crystal Space alkalmazásokat tudj írni.

Az SCF rendszer

Az SCF (lásd a Shared Class Facility (SCF) című részt) rendszer egy alacsony szinű memóriakezelő a Crystal Space számára. Először ezt kell inicializálnod, mielőtt bármi mást tennél. (Egy lehetséges mód rá a use csInitializer::InitializeSCF() használata).

Referencia számláló

A referencia számláláó nagyon fontos része a Crystal Space keretrendszernek. Olvasd el az SCF dokumentcióját (lásd    Shared Class Facility (SCF) ) toávbii információkért és évsd az eszedbe, hogy nagyon fontos, és próbáld meg biztosan meggyőződni arról, hogy a referenciákat helyesen kezeled a saját kódodban. Egy hiányzó DecRef() nagy memóriaszivárgást képes okozni.

Az objektum nyilvántartó

Az objektum nyilvántartó minen Crystal Space objektum központi gyűjtőhelye. A Crystal Space-ben minden képes haszánlni az obektum nyilvántartó arra, hogy pointert szerezzen a számára fontos objektumról. Az első feladatok egyike a CrystalSpace alkalmazásoknak az, hogy létrehozzák az objektum nyilvántartót. Az objektum nyilvántartót a   csInitializer::CreateObjectRegistry() vagy a  csInitializer::CreateEnvironment() használatával hozhatod létre.

A Plugin Kezelő

A plugin kezelő felelős a pluginok betöltésére és kiürítésére. Aplugin egy osztott függvénykönyvtár, ami dinamikusan töltődik be a Crystal Space alkalmazás futásakor. Unix esetében a ‘.so’ kiterjesztést, míg Windows alatt a ‘.dll’ kiterjesztés használatos. Majdnem minden egyes dolog a Crystal Space keretrendszerben plugin. Tehát a plugin kezelő egy fontos objektum. A plugin kezelőt a csInitializer::CreatePluginManager() vagy a csInitializer::CreateEnvironment() segítségével hozhatod létre.

Az esemény sor

A Crystal Space egy eseményvezérelt keretrendszer. Tehát a Crystal Space alkalmazások szintén eseményvezéreltek. Az esemény sor kezeli az esemény rendszert és küldi el az eseményeket a lehallgatóknak. Minden olyan modul vagy plugin, ami megvlósítja az `iEventHandler'  interfészt, képes regisztrálni magát az esemény sor felé és jelzést kap, ha bizonyos események bekövekeznek. Az esemény sort a  with csInitializer::CreateEventQueue() vay csInitializer::CreateEnvironment() segítségével hozhatod létre.

A Crystal Space alaklamzásoknak emellett létre kell hozniuk egy esemény kezelőt, hogy tlépesek legyeek tenni vlaait az eseményekkel. Az esemény kezelő felelős a képernyő rendereléséről (ez törtnéik, a cscmdProcess semény hatására)  és elfoghatják a billentyűzet/egér eseményeket. De ennél sokkal többről vanszó. Az eseménykezelő felállítása az alkalmazás számára a csInitializer::SetupEventHandler() segítségével történhet.

A virtuális óra

A legtöbb Crystal space alkalmazás idővezérelt. A virtális óra táogatja a JLENLEGI IDŐ és az ELTELT IDŐ fogalmát. Virtuális órának hívájk, mivel nem feltétlenül szüksége összhangban lenie a valós idővel. Például egy játék futását fel lehet függeszteni(pause).  Megjegyezzük, hogy egy megfelelően viselkedő játék mindig az eltelt időt kéri le (két frame közöttit) annak a figyelmebe vétele miatt, hogy kiszámolja,  mi történt ez idő alatt. Ez különösen fontos a fizikai számításoknál és mozgó objektuok sebességénél. Egy adott sebességet ugyanannak a seességnek akrsz kezelni az alacsony fps és magas fps-ű rendszerek esetében is. A viruális óra létrehozható a csInitializer::CreateVirtualClock() vagy csInitializer::CreateEnvironment().  segítségével.

A parancsori szövegelemző

A parancssori szövegelemző felelős a parancssori opciók elemzéséért. Ha helyesen inicializáltad az ‘argc’ és az ‘argv’ segítséével, akkor az opciók lekérésére használhatod, amiket tartlamaz a parancssor. Néhány Crystal Space plugin szintén lekérdezi a parancssort, szóval fnotos, hogy az az objektum helyesen legyen inicializálva. A parancssori elemző létrehozható a csInitializer::CreateCommandLineParser() vagy csInitializer::CreateEnvironment().  segítségével.

A konfiguráció kezelő

A konfiguráció kezelő felelős a konfigurációs fájlokban tárolt ociók beolvasásáért. Minden konfigurációs fájl egy globális gyűjtőbe kerül, amit a konfiguráció kezelő kezel. Néhány Crystal Sapce plugin és modul lekérdez opciókat a konfiguráció kezelőtől és a CrystalSpace alkalmazások is megtehetik, ha akarják.

A konfiguráció kezelő létrehozása:

 

csInitializer::CreateConfigManager()

vagy

 

csInitializer::CreateEnvironment()

Előkészíheted a konfiguráció kezelőt:

 

csInitializer::SetupConfigManager()

Az input kezelők

Három standard ipnut kezelőt építettek a Crystal Space-be: billentyűzet, egér és joystick kezelőt. Meghívása:

Vagy:

 

csInitializer::CreateEnvironment()

Létrehozza a drivereket és közzéteszi az objektum nyilvántartóban. A driverek eseményeket továbbítanak a globális esemény sornak.

A csInitializer osztály

Fent említettünknéhány függvényét. Ez az osztály (aminek a definíciója az `include/cstool/initapp.h'fájlban található)  egykonvencia osztály, ami segít neked minden fontos dolog előkészítésében az alkalmazás utásakor. A most következő tutoriálban használni fogjuk néhány tagfüggvényét. Az osztály kizárólag statikus függvényeket tartalmaz.


[ < ]

[ > ]

 

[ << ]

[ Up ]

[ >> ]

This document was generated using texi2html 1.76.