« 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.