Cikkek - Trainz
További fájlokat a cikkhez
Lesson1.cdp (18,5 kb) - csomag egy képzési forgatókönyv.
Lesson1.gs (5 kB) - forráskód a script
SP3S1DCC.gs (27,7 kB) - forráskód a script Highland Valley (DCC)
WriteScript1.rar (90,6 kB) - archív a szöveg a cikk nyomtatandó MS Word 97 formátumban
Hogyan írjunk szkriptek Trainz
1. rész
Hogyan írjunk szkriptek Trainz
Ez az első változata a cikket, amelyet elsősorban azok számára, akik már ismerik a programozás, mivel nem fogom elmagyarázni az alapvető fogalmakat. Azaz, azt feltételezzük, hogy már van egy ötlete, hogy milyen típusú adatok, eljárások, függvények, és az objektum-orientált programozás. Minden, aki először hallott róla, azt meg kell kezdeni küld a könyveket programozási nyelvek, ahol ezek a kifejezések magyarázata.
Szkriptek a Trainz írt hazai nyelven, amely sok tekintetben hasonlít programozási nyelvek, mint a C ++ vagy Java, bár ez a saját cég Auran nyelvet. A forrás a szokásos ASCII script fájl egy szöveges fájl, amely alapértelmezés adott kiterjesztése .gs
Ebből fájlt gsc.exe-fordító programot egy futtatható fájl kiterjesztésű .gsc, amelyet már elvégzett Trainz környezetben. Amennyire tudtam megérteni, a Trainz egyedi beépített többszálas tolmács. Többszálú azt jelenti, hogy képes futtatni több párhuzamos folyamatok önállóan végezhető. Például, akkor írj minden vonat szkriptjeidben külön téma, amely teljes mértékben ellenőrizni a viselkedését, akkor mindezek a patakok futnak végrehajtani, és mindegyik fog végezni önállóan. Pontosabban majdnem függetlenül, ahogy befűzésének Trainz, mint kiderült, ez szimulálja. Azaz, ha az egyik szál kezd végrehajtó egyes hosszú eljárás nélkül várakozó hívás esetén rutin, mint például a létrehozása kompozíciók, minden folyamat, beleértve a fő játék van függesztve befejezése előtt ezt az eljárást.
Azt is szeretném megjegyezni, hogy a keletkező kimeneti fájl nem tartalmaz .gsc parancs processzor, és a belső bytecode tolmács Trainz.
Ebben a könyvtárban van makescript.bat fájl Auran cég azt javasolja, hogy másolja abba a könyvtárba, ahol írni a forgatókönyvet, és futtassa a segítségével egy összeállítás. Ez a fájl tartalmazza a következő parancsot OS parancs processzor:
A %% egy a (* .gs) do% GSC% %% egy -i% közé%
Azt feltételezik, hogy a szkript egy script a katalógusban világ \ egyedi \ forgatókönyvek \<имя сценария>\
Más szóval, meg két változó, amelyben először jön vissza a forrás könyvtárat a játék, majd az első esetben, menj a fájl gsc.exe fordító, ami a bin könyvtárban, és a második előírt mappa elérési útvonala script könyvtár is található a játék könyvtárban hol vannak a header fájlokat az összes belső objektum a játék Trainz és amelyre fogunk hivatkozni, ha írásban a saját szkripteket.
A string-el kezdődik az, megismétli a hívást a fordító az összes felsorolt fájlok a parancssor után a legtöbb makescript.bat
Elvileg lehetséges, hogy használják ezt a fájlt, másold át egy mappát a szkriptet, de lehet írni a saját, ha valaki meg akarja.
Ha hívja gsc.exe programot paraméterek nélkül, akkor kap a következő képernyő szöveg:
Auran GameScript Compiler V1.01
gsc.exe visszatér több fordítási hibák
gsc.exe
ahol
<-d> print dokumentációt, u érdemes szeretnék cső egy szöveges dokumentum =)
<-bfilename> kiírása a build info (összeállításához napló) fájlba
<-ppathname> papírkimenethez
<-ofilename> kimeneti könyvtár fájlnév
<-ipathname> további include path
amely kimerítő leírást a parancssor szintaktikai és a kulcsok, akkor a program beállítása. Abban a pillanatban, mi a leginkább érdekelt csapat -d, amely lehetővé teszi, hogy dokumentáció nyelvén Auran GameScript programozás.
Egyszerűen írja be a parancssorba:
Gsc.exe -d> gsc.txt
Nyomja meg, és kapsz a gsc.txt fájl teljes és részletes leírását a szintaxis. Kívánatos, hogy a nyomtatott és az első alkalommal, míg magukat a nyelv, raktáron tartani. Azonban, ahogy az várható, ez a leírás ismét angolul. )
Rövid leírása a nyelvi szintaxis Auran GameScript
A fenntartott szavak a nyelv ismertetjük részletesen gsc.txt, nem fogom megismételni, minden világos.
A szintaxis alapvető szereplők, beleértve a feltételeket az üzemeltetők, ciklusok, a kiválasztás bekerül a C nyelv, beleértve a merevítőket, hogy melyik kód blokkok kerülnek végrehajtásra. Azaz, aki nem érti a leírást a fájl gsc.txt vesz egy könyvet a C vagy C ++ nyelven és megérteni. De ha már arra figyelmeztetnek, hogy meg kell, hogy továbbra is elsődlegesen az gsc.txt fájlt, mert vannak bizonyos különbségek.
Azonosítókat ad meg a szabvány, mint sok más programozási nyelveket. Bármilyen azonosítót kell kezdődnie írni a latin ábécé (A..Za..z_) vagy aláhúzás, majd ugyanaz lehet betű vagy szám. Csak szeretném megjegyezni, hogy a kis és nagybetűket kell tekinteni más! Azaz, a fordító és nagybetűk között, ellentétben sok más programozási nyelveket.
Az adattípusok által támogatott nyelv
Érvénytelen # 9 - üres adattípust, amely csak akkor kell használni, amikor leírja a funkciókat
Int # 9-32 bites előjeles egész szám
Úszó # 9-32 bites lebegőpontos szám
Bool # 9 - 32 bit logikai, 0 - hamis vagy nem 0 - igaz (általában a C)
String # 9 - egy szöveget
Tárgy # 9 - az objektum egyik deklarált kaszt a játékban, ugyanabban az időben, amikor, hogy egy változót, akkor írj, természetesen, az osztály nevét, nem a tárgy, mert az objektum az alap osztály, amelyből az összes többi generált
int [] # 9 - egész tömb
float [] # 9; - egy sor lebegőpontos számok
bool [] # 9 - egy sor logikai változók
string [] # 9 - esetén vonalak
Object [] # 9 - egy tömb tárgyak
Mint látható, egy kis adathalmazt típusok, de valójában éppen elég az írás a legtöbb összetett írást. Ugyanakkor, szemben az univerzális programozási nyelv, nem jelenthetjük ki új alapvető adattípusok Auran GameScropt, beleértve a szerkezetet, vagy egyesület, de kijelentem új osztályok, amelyek a gyakorlatban is elég.
Minden nagyobb üzemeltetői nyelven lehet használni a kifejezést, lásd 2.6 gsc.txt fájlt. Ezek nagyrészt ismételje meg a C-üzemeltetők, a nyelvi és néhány fontos különbség, azt mondom, egy kicsit később, amikor megbeszéljük példákat.
Szeretnék lakni egy kicsit a modell az objektum-orientált programozás, amely Auran végre a saját nyelvén.
Először is, minden osztály bejelentett belső funkciók virtuális. Ugyanakkor, ha kijelentjük leszármazottja osztálymetódusként az azonos nevű, mindig automatikusan kiterjed a funkciót egy osztály-ős. Nem kell semmilyen különleges utasításokat. Ha szüksége van egy önálló funkciója, csak annyit írj be egy új nevet.
nyelvet is támogatja a többszörös öröklést, amikor a szülő az új feltüntetett osztály számos osztálya szülők. Ebben az esetben az új osztály elérhető lesz minden területen és funkciók, melyek minden ősei együtt (gyártott unió).
Nos, ebben a bevezető rész befejezni, és lépni a közvetlen fejlesztési forgatókönyveket.
Szükséges fájlokat és előkezelés
Forgóvázak # 9 # 9 - forgóvázak gördülőállomány
Motorok # 9, # 9 - A motor leírása paraméterek mozdonyok, beleértve a vontatási
Enginesound # 9 - a hang a motorok mozdonyok függően a jelenlegi hatalom
Földi # 9 # 9, - a felületi
Hornsound # 9 - megszólal mozdonyok
Html # 9, # 9 - oldal html, bár egy lecsupaszított változata belső mini-böngésző. Az ő segítségével létre összetett dialógusok, amely lehetővé teszi, hogy megkapja az adatokat a felhasználó.
Nadrág # 9; # 9, - áramszedők (áramkollektor) elektromos mozdonyok
Termékek # 9 # 9 - termékek új ipari létesítmények. Mi akkor lesz folytatni. Azonban van egy csomó kell tennie, hogy ez a munka, többek között a termelés a tárgyak maguk és a fogadó termékek, valamint az autók, hogy tudják hajtani.
A Profiles # 9 # 9 - az úgynevezett profil a játék - a vonatok helyzetének a térképen. Ezen kívül minden profilt a config.txt fájl utal néhány elérhető térképeken Trainz.
A forgatókönyvek # 9 # 9 - nos, ez a könyvtár, amit akar. ) Vannak forgatókönyveket.
Tájkép # 9 # 9 - különböző egyes objektumok kerülnek a térképen.
Splines # 9, # 9 - Különböző spline hogy el tudjuk helyezni a térképen. Azaz az utak, hidak, kerítések, elektromos vezetékek, stb kivéve azokat, amelyek a vasúti pálya
A Track # 9 # 9 - de ez önmagában vasúti pályák és minden, ami benne a vasúti pálya.
Pályamenti # 9 # 9 - tárgyak, amelyek mentén elhelyezett vasúti pálya, nyíl típusú, közlekedési lámpák, táblák, stb
Vonatok # 9 # 9 - járművek, azaz mozdonyok és vagonok
Az összes fenti témák mi érdekel elsősorban forgatókönyvek, és a Maps, ha a szkript történik a saját kártyákat.
Lépj be a könyvtárba világ \ egyedi \ forgatókönyvek (ha nem, hozzon létre), és azon belül hozzon létre egy új könyvtárat, amelyben adja meg a nevet, amellyel azt akarjuk, hogy a szkript, akkor látható a Trainz. Például, Lesson1. Az első dolog, amit létre kell hozni ezt a fájlt config.txt, amely létrehozta bármilyen tárgy Trainz.
f7_sfred
> - a táblázat vége KUID
leírás „Lesson1 Trainz Script
A marker az a pont, ahol a vonat lehet oltani a programunk. Ebben az esetben a mozgás irányát irányának felel meg a piramis. Elvileg minden marker vagy ravaszt kell adni egy egyedi névvel, az egyik, hogy lesz szó kinevezését, így nem összezavarodnak írásakor a program. Az is kívánatos, hogy rendelni értelmes neveket az összes kitérők, vagy legalábbis azok, akik részt vesznek a programban. Ahhoz, hogy adjon meg egy nevet, akkor ki kell választania a kérdőjel gombra, majd válassza ki a kívánt objektumot a térképen.
Trigger egy szolgáltatás entitás, amely képes generálni rendezvények a programban mozgásával összefüggő vonat. Így tud válaszolni egy vonat belépő trigger zóna megállítani a vonatot a trigger zónában és a vonat kimenet a trigger zónában. trigger zóna (kiváltásához) be van állítva egy gomb, ami a fül, a fejlett, ahol a kétirányú nyíl levonni. Azt is beállíthatja a trigger tartományban számszerű formában méterben. Igen, hogy nyissa meg a fejlett oldalon kell kattintani a „fejlett” alján a nyitott pályák a szerkesztőpanelben (lásd. Ábra).
Igen, csak azt akarom, hogy figyelmeztesse, hogy akkor is, ha normálisan működik válthat Trainz és egyéb programok, változás esetén a forgatókönyv nem fogja látni őket a játék, amíg az újraindítást Trainz, mivel megjelenése előtt a script program fog feküdni a Trainz a belső cache.
Üdvözlettel
Dmitry Myl'nikov