« Előző oldal- - - ^Tartalom^- - - Következő oldal »

21.2 fejezet


A nyomvonalak hozzárendelése az objektumokhoz

Hogy a nyomvonalat hozzárendeld az objektum egy példányához, a nyomvonal akciót kell elhelyezni valamilyen eseményben, például a létrehozás eseményben. Itt a legördülő menüből kell kiválasztani a nyomvonalat.
A követendő nyomvonal megadása után a lépésenkénti képpontok által meghatározott sebességet is be kell állítani. Ha a sebességérték pozitív, akkor a példány a nyomvonal kezdetétől, míg ha negatív, akkor a végétől indul el. Emlékezz vissza arra, hogy a nyomvonal elkészítésekor a pillanatnyi sebességet ehhez a jelölt sebességhez viszonyítva adtad meg. Van egy akció a sebesség megváltoztatására is, mellyel a nyomvonal végrehajtódik. Ezzel például lelassíthatsz vagy felgyorsíthatsz egy példányt a nyomvonal mentén. Jegyezd meg, hogy a példány rendes sebessége a nyomvonal végrehajtásakor figyelmen kívül lesz hagyva (valójában 0-ra állítva). Ezenkívül az olyan dolgok, mint gravitáció vagy súrlódás, nem befolyásolják a nyomvonalon történő mozgást.
Aztán meg kell határozni, hogy mi történjen a nyomvonal végének elérésekor. Választható a megállás, vagy az újraindulás a nyomvonal kezdetétől, vagyis a példány visszaugrik az elejére, és a nyomvonal újra végigmegy rajta. A harmadik lehetőség az újraindulás a pillanatnyi helytől, vagyis a példány megint követi a nyomvonalat, de most ettől az új kiindulási ponttól kezdve (ez ugyanolyan, mint amikor a nyomvonal zárt). Végül választható a mozgás visszafordítása, amikor a példány visszafelé megy a nyomvonal mentén. Jegyezd meg, hogy a nyomvonal végén is megtörténik egy esemény; lásd: lentebb.
Végül megadhatod, hogy a nyomvonal abszolút-e vagy relatív. Egy abszolút nyomvonal a megadás helyén hajtódik végre. A példány elhelyeződik a kiindulási helyre, és onnan kezd el mozogni. Ez például akkor hasznos, ha van egy versenypályád, amelyen meghatároztad a nyomvonalat. A relatív nyomvonal esetén a példányok a saját pozíciójukban kezdik meg a nyomvonal végrehajtását. Ez hasznos, amikor egy példány számára helyi mozgást kell csinálni. Például így az űrhajók egy Space invaders-szerű játékban egyénileg tudnak megfordulni a saját pozíciójukban.
A példány elhelyezéséhez a nyomvonalának egy másik pontjára a megfelelő akciót használhatod. Egy nyomvonalhelyzet mindig 0 és 1 közötti, a 0 jelzi a kiindulási helyet, az 1 pedig a nyomvonal végét. Jegyezd meg, hogy az irány (direction) változó minden lépésben önműködően beállítódik a megfelelő irányba a nyomvonal mentén. Ezt a változót felhasználhatod arra, hogy beállísd a megfelelő tájolást a sprite számára.

Szkriptekkel és kódokkal a nyomvonal sokkal jobban befolyásolható. A path_position függvény az aktuális poziciót jelzi a nyomvonalon (értéke 0 és 1 között lehet, ahogy említettük). A path_speed változó a nyomvonal menti sebességet jelzi. A path_scale változó használható a nyomvonal méretezésére. Az 1 érték az eredeti méretet jelenti. A nagyobb érték megnagyobbítja, a kisebb kisebbíti a nyomvonalat. A path_orientation változó az alapirányt adja meg, amelyben a nyomvonal végrehajtódik (fokokban, az óramutató járásával ellentétesen). Ez lehetővé teszi a nyomvonal végrehajtását egy másik irányban (például le-fel mozgás a jobbra-balra helyett). Van egy változó a nyomvonal végénél bekövetkező viselkedés szabályozására. Végül számos függvény van a nyomvonalak tulajdonságainak lekérdezésére (pl. az x és y koordináták egy bizonyos helyen), és vannak nyomvonalak létrehozására is. Vannak olyanok, amelyek ütközésmentes útvonalakat készítenek egy példány számára, hogy az elérjen egy bizonyos célt. A részletekért nézd meg a GML leírását.

Mi történik, ha a példány az útvonalon való mozgás közben ütközik egy másikkal? Alapvetően ugyanaz, mint amikor egy adott sebességgel mozog. Mikor egy szilárd példányról van szó, a példány visszakerül az előző helyére. Ha egyik sem szilárd, akkor az új helyükre kerülnek, azután az ütközés esemény(ek) végrehajtódnak, és ellenőrzésre kerül, hogy az ütközés megoldódott-e. Ha nem és a másik példány szilárt, akkor megáll, ahogy kell. Ekkor a path_position változó értéke nem növelődik meg. Ha az akadályozó példány eltűnik, a példány folytatja a nyomvonalának követését. Ha magad kezeled az ütközéseket, akkor a path_positionprevious változó hasznos lehet. Ez tartalmazza az előző helyet a nyomvonalon, és erre beállíthatod a nyomvonalpozíciót, hogy elkerüld a továbbhaladást.

A nyomvonal esemény:

Ahogy fentebb említésre került, megadhatod, hogy mi történjen akkor, amikor a példány eléri a nyomvonal végét. Ebben a pillanatban egy End of Path (Nyomvonal vége) esemény is bekövetkezik. Ezt az Other események között találod, ide helyezhetsz el cselekvéseket. Például megsemmisítheted a példányt, vagy elindíthatod egy másik útvonalon.