« 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);
}