« Előző oldal- - - ^Tartalom^- - - Következő oldal »
A JÁTÉKBAN SZEREPLŐ TÁRGYAK
KIKAPCSOLÁSA: (GM 5.2-től)
Egy nagyméretű pályánál ha kicsi a nézet,
sok szereplő és tárgy a nézeten kívül található, melyek
ettől függetlenül még aktívak és cselekvéseik
végrehajtódnak, pl. az ütközés esemény ellenőrzéseibe
ezek is beleszámítanak. Ez sok időbe telik, melyre gyakran nem
is lenne szükség (pl. sokszor nem fontos, hogy a nézeten
kívüli tárgyak mozognak-e).
Ezen probléma megoldására a GM tartalmaz
néhány függvényt, melyekkel ki- és bekapcsolhatók a
játékban szereplő tárgyak.
A kikapcsolt tárgyak érzékelése megszűnik a játékban. Nem
lesznek láthatóak és az események sem hajtódnak végre
rajtuk. Ezzel időt lehet megtakarítani, de óvatosan kell
bánni ezen lehetőség használatával. Például ha valami
törlésre kerül, akkor ez a kikapcsolt állapotú megfelelőire
(pl. alképeire) nem vonatkozik (mert nem léteznek). Így nem
biztos, hogy pl. a játékos a felvett kulccsal ki tud nyitni egy
kikapcsolt ajtót.
A legfőbb hiba a bekapcsolásért felelős objektum
kikapcsolása. Ezt megelőzendő az alábbi függvények
némelyikében lehetséges a kikapcsolandó objektumok közül
kijelölni egy olyat, amelyik ne kapcsolja ki magát:
instance_deactivate_all(engemne) - minden tárgy
kikapcsolása a pályán. Ha az engemne értéke
igaz, az ezt hívó tárgy nem lesz kikapcsolva (normális
marad).
instance_deactivate_object(obj) - az obj
tárgy kikapcsolása a pályán. Az azonosítója (id)
használatával egy külön is kikapcsolható, egyébként a név
használatával minden egyes hatástalanítva lesz.
instance_deactivate_region(bal,teteje,szelesseg,magassag,benn,engemne)
- minden tárgy kikapcsolása a jelzett területen belül (azok,
amelyeknek a foglalata (bounding box) beleér a jelzett
területbe). Ha benn értéke hamis, a jelzett
területen kívüli tárgyak lesznek kikapcsolva. Ha engemne
igaz, a hívó tárgy normális marad.
instance_activate_all() - minden tárgy
kikapcsolása a pályán.
instance_activate_object(obj) - minden egyes obj
tárgy bekapcsolása a pályán. Az azonosító (id)
használatával egy külön is kiválasztható.
instance_activate_region(bal,teteje,szelesseg,magassag,benn)
- minden tárgy bekapcsolása a jelzett területen. Ha benn
értéke hamis, a megadott területen kívüli tárgyak lesznek
bekapcsolva.
Például a nézőponton belülre eső tárgyak bekapcsolásához
és az azon kívüliek kikapcsolásához a következő kódot
kell a mozgó alak lépés (step) eseményéhez
rendelni:
{
instance_activate_all();
instance_deactivate_region(view_left[0],view_top[0],view_width[0],view_height[0],false,true);
}