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 (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).
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ó 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ő 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.
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
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
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ő 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:
vagy
Előkészíheted
a konfiguráció kezelőt:
Három
standard ipnut kezelőt építettek a Crystal Space-be:
billentyűzet, egér és joystick kezelőt. Meghívása:
Vagy:
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.
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.
This
document was generated using texi2html
1.76.