Súgó játék készítő 8
elmozdulás
Nyilvánvaló, hogy a játék lényeges eleme az objektumok példányainak mozgása. Az objektum minden példányának két beépített változója van, amelyek az x és az y függvényeket jelölik. Pontosabban azt jelzik, hogy hol van a sprite eredete. A pozíció (0,0) a szoba bal felső sarkában található. Az x és y változók módosításával megváltoztathatja egy objektum példányának helyzetét. Ha az objektummozgásokat bonyolultabbá kívánja tenni, akkor ez jó módja. Ezt a kódot általában az objektum eseményfolyamatára helyezi.
Ha az objektum állandó sebességgel és irányban mozog, akkor könnyebb elérni ezt a módszert. Az objektum minden egyes példányának van egy vízszintes sebessége (hspeed) és egy függőleges sebesség (vspeed) (pixelek lépésenként). A pozitív vízszintes sebesség azt jelenti, hogy jobbra mozog, és a negatív vízszintes sebesség azt jelenti, hogy balra mozog. Pozitív függőleges sebesség - le és negatív függőleges gyorsítás. Ezért ezeket a változókat csak akkor kell beállítani (például a létrehozási eseményen), amikor az objektumnak állandó mozgással kell rendelkeznie.
Van egy másik módja annak, hogy meghatározzuk a mozgást, az irányt (0-359 fokokban) és a sebességet (nem lehet negatív). Ezeket a változókat beállíthatja és elolvashatja az önkényes mozgás meghatározásához. (A hspeed és a vspeed értékeit közvetlenül módosítja.) Vannak továbbá: súrlódási erő, gravitáció és gravitációs irány. Végül van egy függvény motion_add (dir, speed). Mozgás hozzáadásához az objektum aktuális példányához.
Egy teljes készlet esetében az objektum minden egyes példányához a következő változók és függvények vonatkoznak a pozíciójára és mozgására:
x Az objektum példányának koordinátáját tükrözi az x tengely mentén.
y Az objektumpéldány koordinátáját tükrözi az Y tengely mentén.
xprevious Az objektum példányának koordinátáját tükrözi az előző lépésben az X tengely mentén.
yprevious Korrigálja az objektumpéldány koordinátáját az előző lépésben az Y tengely mentén.
xstart Indításkor az aktuális szobában az x tengely koordinátáját visszaveri.
Ystart Az aktuális szobában lévő y tengely koordinátáját az indításkor tükrözi.
hspeed Az objektumpéldány mozgási sebességének vízszintes irányát.
vspeed Tükrözi egy objektum egy példányának mozgási sebességét függőlegesen.
irány Az objektum példányának jelenlegi irányát (0 és 360 fok között, a számláló az óramutató járásával ellentétes irányba, a 0 pedig jobbra) visszaveri.
sebesség Tükrözi az objektum példányának aktuális sebességét (lépésenkénti pixelek).
súrlódás A tárgypéldány aktuális súrlódását visszük (lépésenkénti képpontok).
gravitáció Az aktuális objektumpéldány gravitációs erejét tükrözi (lépésenkénti pixelek).
gravity_direction Tükrözi a gravitációs irányt az objektum aktuális példányára (270 - lefelé).
motion_set (dir, speed) Az objektum aktuális példányát mozgás közben a dir irányba mozgatja sebességsebesség mellett.
motion_add (dir, speed) A "Vector" mozgás sebességgel és irányjelzéssel növeli az objektum aktuális mozgásának mozgását.
Számos olyan funkció is van, amelyek segítenek a megadott mozgások kezelésében:
place_free (x, y) Az true értéket adja vissza, ha nem ütközik szilárd tárgyakkal egy olyan objektum példájával, amelyet koordinátákkal (x, y) lát el. Általában ezt a funkciót ellenőrizni kell, mielőtt az objektumpéldányt áthelyezi a pozícióra (x, y).
place_empty (x, y) Az eredményt akkor adja vissza, ha egyáltalán nincs ütközés az objektum példájával, és egy koordináta-pontba (x, y) helyezett.
place_meeting (x, y, obj) Az objektum aktuális példánya egy koordinátával (x, y) rendelkező pontra kerül, ha az ütközés az obj objektum példányával történik. Ez lehet egy példányazonosító, egy speciális szó is, vagy egy különszó más.
place_snapped (hsnap, vsnap) true, ha az aktuális példányát az objektum igazodik a rács szembőségű meg vsnap hsnap pixel.
move_random (hsnap, vsnap) Az objektum aktuális példányát áthelyezi az aktuális helyiség tetszőleges szabad rácscellájába.
move_snap (hsnap, vsnap) Áthelyezi az objektum aktuális példányát az aktuális helyiség legközelebbi rácscellájára.
move_wrap (hor, vert, margin) Áthelyezi az objektum egy példányát a szoba másik oldalára, amikor külföldre hagyja. hor - a vízszintes elmozdulást és a vert - a függőleges átvitelt határozza meg. margó - azt jelzi, hogy a minta középpontja mennyi legyen a helyiségen kívül, amikor a csomagolás megtörténik. Általában az Outside-ban használják.
move_towards_point (x, y, SP) teszi az aktuális példányt az objektum felé a pont koordinátái (x, y) olyan sebességgel sp.
move_bounce_solid (adv) Az objektum aktuális példánya csak szilárd objektumok példányaitól származik. Ha az adv igaz, akkor a rikochet előrehalad (a lejtő falától)
move_bounce_all (adv) Az objektum aktuális példánya minden objektum példányából újraindul.
move_contact_solid (dir, maxdist) teszi egy példányát egy tárgy irányában mozgó DIR egészen az aktuális példányt az objektum ne álljon kemény Az objektum másolata. A maxdist argumentum tartalmazza azt a maximális távolságot (pixelben), amelyet egy objektum-példánynak át kell adnia. Ez azt jelenti, hogy ha az objektum példánya a maximális távolságot eléri, anélkül, hogy szilárd tárgyakkal találkozna, akkor még mindig megáll. Ha azt szeretné, hogy az objektum példánya még mindig mozogjon az ütközés előtt, a megkerülő útvonal méretétől függetlenül állítsa a maxdist értékét -1 értékre (negatív értékeket használjon tetszőleges távolság esetén).
move_contact_all (dir, maxdist) Ugyanaz, mint az előző függvény, azzal a különbséggel, hogy az objektum példánya addig megy, amíg egy objektum példánya nem találkozik.
move_outside_solid (dir, maxdist) A másolat az objektum irányába mozog DIR egészen az aktuális példányt az objektum érintkezik a szilárd tárgy példány. Ha a kapcsolat nem fordul elő, akkor a másolat megmarad. A maxdist argumentum tartalmazza azt a távolságot (pixelben), amelyet az objektum példánynak meg kell adnia (tetszőleges távolsághasználati negatív értékek esetén).
move_outside_all (dir, maxdist) Ugyanaz, mint az előző eljárás, azzal a különbséggel, hogy az objektum példánya egy objektum példányának érintkezésénél fog mozogni.
distance_to_point (x, y) A ponttól való távolságot adja meg az objektum aktuális példányának koordinátáival a koordinátákhoz (x, y).
distance_to_object (obj) Visszaadja a legközelebbi obj objektum példányt.
position_empty (x, y) Eredmény igaz, ha a koordinátapontban nincs (x, y).
position_meeting (x, y, obj) A true értéket adja meg, ha az objektum obj objektuma van a koordináták (x, y) pontján. Az obj lehet egy objektum, egy objektum példányazonosítója vagy az egyik kulcsszó: az én. Más. vagy mindet.