A cikkek bemutatása - cikkek - cikkek katalógusa

belépés
Ez a bemutató megtanítja Önt, hogyan kell használni a Lua-t. Olyan emberek számára íródott, akik korábban nem találkoztak a programozással, ezért nem fogják használni a többi tankönyvben található komplex szavakat. Jobb lesz, ha már tudod, hogyan kell az ini-kóddal dolgozni, mielőtt elkezdenél programozni.

1.0 - Első lépések
-> 1.1 Lua fájl létrehozása
-> 1.2 Szkript csatolása egy objektumhoz

3.0 - Lua cuccok
-> 3.1 A forgatókönyv szakaszai
-> 3.2 Funkciók
-> 3.3 Mutatók

4.0 - Wiki funkciók és tulajdonságok

5.0 - Minta Script
-> 5,5 bánya

----- 1.0 - Főoldal -----
________________________
A Lua lehetővé teszi az objektumok számára, hogy azt csinálják, amit általában nem tudnak megtenni, vagy különleges effekteket hoznak létre.

- 1.1 Lua fájl létrehozása -

A Lua szkriptek elve az, hogy a scriptek az ini segítségével létrehozott objektumokhoz kapcsolódnak. Ahhoz, hogy egy Lua fájlt egy egyszerű notebookban készítsen Windows alatt, csak hozzon létre egy új szövegfájlt, menjen a "Fájl" menü "Mentés másként.", Változtassa meg a "Fájltípus:" és "Minden fájl" lehetőséget. és változtassa meg a ".txt" fájlt a ".lua" fájlnév alatt. Ha nincs kiterjesztés, add add ".lua" a fájlnév végén. Ezután kattintson a "Mentés" gombra. Lua-fájlt hoztál létre.

Tipp a fordítótól: Használja a Notepad ++-et a szabványos jegyzettömb helyett, mivel a Lua összes szintaxisát mutatja, és általában könnyebb dolgozni benne.

- 1.2 Szkript csatolása egy objektumhoz -

Ha egy Lua parancsfájlt szeretne csatolni egy ini fájlban létrehozott objektumhoz, akkor tegye a "ScriptPath =" parancsot <путь к файлу Lua>"az objektum kódblokkjában a megfelelő táblázattal.

----- 2.0 - A programozás alapjai Lua -----
________________________

Az adattípusok azok a adattípusok, amelyeket a változók és tulajdonságok esetén használnak. A CC-ben 5 alapvető adat típusa van: számok, szöveg, logikai (logikai változó), vektor és nulla (null). Az első 2 - ez a cím egyértelmű, ez. A logikai érték egy logikai változó; annak értéke igaz (igaz) vagy hamis (hamis). A CC vektor a koordináták (X, Y). Numerikus adatokat használnak, csak számokat nyomtatnak. A szöveg akkor használható, ha van pár idézőjel ("") a szöveg között. A vektort a "Vector" szó után vesszük fel 2 számmal vesszővel elválasztva két zárójelben. A nulla értéket "nulla" -nak (nem zavarják a nulla értékkel).

--Boole változó
igaz
hamis

--vektorok
Vektor (1,1)
Vektor (5,2)
Vektor (-7.6)

--Nulla (semmi)
nulla

A változók Lua-ban vannak, amire értelmet adhat. Ezeket az információkat tárolja, így később visszahívhatja őket. A változó saját nevét, egy "=" jelet és egy értéket tartalmaz.

Egy változó módosításához egyszerűen írja be ugyanazt a változót az új értékkel:

A változó ugyanolyan értékű is lehet, mint a másik változó, és az értéket egy másik változó neveként állítja be:

Ennek eredményeként az X 5 lesz.

Kétféle változó létezik: globális változó és helyi. A globális változókat bármely objektum szkriptje megváltoztathatja, megváltoztatva az értéket, és csak egy változó létezik a névvel. A globális változók hasonlóak a fenti példákhoz.

A helyi változók azok a változók, amelyeknek több példánya lehet, és amelyek mindegyike az objektumhoz van kötve a létrehozott parancsfájllal. Helyi változó létrehozásához írja be a "local" kifejezést a változó neve előtt, szóközzel elválasztva. Egy helyi változó értéke egy másik helyi változó értékével megegyező módon működik, hasonlóan a globális változókhoz.

helyi varA = 5
helyi varB = varA

Ez a művelet a "varB" változót egyenlő 5 értékkel. Megjegyezzük, hogy a "helyi" szót nem használtuk, amikor a "varA" változót választottuk.

A változók másik hasznos tulajdonsága, hogy változókat használhat egy adott tulajdonság egy objektumban, és tárolhatja az objektumot egy változóban. Ha egy objektumot tárol egy változóban, akkor könnyebben kölcsönhatásba léphet, és könnyebben felhívhat egy mutatót. A változók használatához egy objektum tulajdonságának megváltoztatásához szükség van egy változóra, amely egy adott mutató az objektumhoz (később kiderítjük), amelyet egy periódus, egy tulajdonságnév, egy "=" és egy érték követ.

A "dolog" egy objektum mutatója, a "GetsHitByMOs" egy ini objektum tulajdonsága, és a "hamis" érték.

Általában egy mutatót használnak, amelyet már "én" -ként definiálnak. A mutató mindig az objektumra vonatkozik, amelyhez a szkript van csatolva.

A Lua (és egyáltalán a programozás) elve az, hogy ellenőrizze a szolgáltatókat, hogy ellenőrizzék-e az értéküket, és hogy valamit megtesz-e, ha (vagy ha nem). Nézzük az alábbi kódot.

ha X == 1 akkor
<содержимое>
vég

Ez a kód ellenőrzi, hogy az "X" változó "1" -e, majd a "tartalom" ("<содержимое>"nem az aktuális műveletet, hanem csak a helyettesítő mutatót a többi parancshoz, amelyet később kaphatunk), ha a kijelentés igaz." A "blokk alján" a "<содержимое>msgstr "" "Ha ezt a kifejezést nem sikerült befejezni <содержимого> is), akkor hibát fog kapni. Vegye figyelembe, hogy az "if" sorban 2 "=" jel látható. "==" ellenőrizni kell az egyenlőséget, és "=" a változó / tulajdonság értékének beállításához.

-- kevesebb vagy egyenlő
<=

-- nagyobb vagy egyenlő
> =

Az "if" állítások belsejében megtalálhatók az "egyéb" operátorok. Ezek az operátorok ellenőrzik, hogy a "if" feltétel teljesül-e, és ha ez nem igaz (nem teljesül), akkor
akkor a cselekvéseket a tartalmukon végzik.

ha X == 1 akkor
<содержимое>
más
<содержимое>
vég

Az "Elseif" feltétel hasonló a második "if" állításhoz és működik is:

ha X == 1 akkor
<содержимое>
elseif X == 2 majd
<содержимое>
vég

Az utasításban sok "elseif" feltétel létezhet, de csak egy "mást".

A listák (más néven táblák és tömbök) olyan változók, amelyek több értéket tartalmazhatnak. Lista létrehozásához írja be a lista nevét, majd egy "=" szót és egy zárójelet <>.

Egy érték hozzáadása a listához hasonló a változó értékének hozzárendeléséhez / módosításához. Kinyomtatnia kell a lista nevét, majd egy pár szögletes zárójelet a megadott számmal a listában, egy "=" értékkel, majd egy értékkel.

thelist [1] = 1234
thelist [2] = 37065

A lista előtt egy számjegyes karakter, a listán szereplő elemek száma.

Ugyanaz a lista, mint a fenti példákban, értéke "numbercheck" értéke 2.

A lista összes értékének törléséhez írja be a lista nevét, a "=" jelet és egy üres zárójelet. Csak egy érték törléséhez állítsa ezt az értéket nullára.

-- A teljes lista törlése
thelist = <>

-- Egy érték törlése
thelist [1] = nulla

A listák lehetnek globálisak és helyiek, mint változók.

thelist = <>
helyi thesecondlist = <>

--- 2.6 A nyilatkozat ---

Mivel az operátorok sok ismétlődő műveletet hajtanak végre a szkript memóriájának egy rövid szakaszában. Az operátor "For" írásának formátuma az alábbi.

mert <переменная> = <начальное число>, <число как много раз совершать действия> csinál

Példa a "for" operátor használatára.

i = 1, 5 do
<содержимое>
vég

Nézzünk mindegyik részletet részletesen:

mert
- Indítsa el a kulcsszót

i = 1
- "i" egy ideiglenes változó, amelyet a "for" operátor használja, hogy megmentsen hányszor hajtott végre műveleteket (beleértve az 1-et). Az "i" változó változóvá válik bármely névre. Az "1" a számlálás kezdeti értéke.

5
- Az ismétlések száma "<содержимого>”.

Az "for" kifejezés megszakításához írja be a "break" szót a "if" utasításban, amely ellenőrzi az "for" utasítás értékét, hogy teljesítse az állapotot.

i = 1, 5 do
ha i == 3 akkor
szünet
vég
vég

----- 3.0 - Cortex Command Lua cuccok -----
________________________

--- 3.1 A forgatókönyv szakaszai ---

A parancsfájl szakaszai a parancsfájl azon részei, amelyeket csak akkor hajtanak végre, amikor az objektumot létrehozták, amikor létezik, vagy amikor megsemmisült. A szkriptfázisok szintén "véget", valamint feltételes állításokat tartalmaznak.

-- <Содержимое> a "funkció létrehozása (ön)" és a "vég" közötti intervallum csak az objektum létrehozásakor fog működni. (csak egyszer fordul elő)
funkció Create (self)
<Содержимое>
vég

-- <Содержимое> a "Frissítés (ön) és a" vég "közötti intervallum csak akkor működik, ha ez az objektum létezik.
funkció Frissítés (ön)
<Содержимое>
vég

-- <Содержимое> a "Destroy (ön) és a" vég "közötti intervallum csak akkor működik, ha az objektum megsemmisült (csak egyszer fordul elő)
funkció Destroy (self)
<Содержимое>
vég

A funkciók a Lua részei, amelyek már beépülnek a játékba és kölcsönhatásba lépnek a Cortex Command tartalmával. Funkció formátuma - a függvény csoportjának neve, a kettőspont, a funkció neve és paraméterei (a szükséges adatok ehhez a munkához) zárójelben lévő vesszőkkel vannak elválasztva. A Cortex Command funkció csoportjainak többsége helyettesíthető egy mutatóval valamihez, amellyel kölcsönhatásba léphetnek. Példa az alábbi függvényre:

Funkcióinformációk a Wikipediából Cortex Command Lua:

AddImpulseForce
Hozzáadja az impulzus erejét (vagy azonnali lendületet) ehhez a MovableObject-hez a következő frissítéshez ().

- Vektor az impulzuserővektorral, amelyet hozzá lehet adni ehhez a MovableObject lendületéhez a következő frissítés (). Kg * m / s.
- Egy vektor, amelynek metrikus eltolásával, ahol az impulzus a MovableObject középpontjához viszonyítva történik.

Az "anaktor" a színész mutatója, az "AddImpulseForce" a függvény neve, és a zárójelek tartalma a munkához szükséges adatok. A funkció információs blokkban a "visszatérési érték" az a funkció, amelyet a végrehajtásakor kiad.
A Cortex Command funkcióinak többsége megtalálható a wikiban, ezért ellenőrizze.

Nos, végre eljutottunk az útjelző táblákhoz!
A Cortex parancsban a mutatók olyan változók, amelyek maguk "tárolják" egy objektumot. Vagy elképzelheti ezt, mint egy óriás nyíl mutat egy objektumot. függetlenül attól, hogy milyen tulajdonságokat adott meg egy mutatóban, vagy egy funkciót használ rajta, akkor hatással lesz az objektumra, amelyre "pontot" jelent.

Többféleképpen hozhat létre mutatókat. Általában egy speciális "for" kifejezést használ, amely egy adott típusú objektumot ellenőriz, és egy olyan operátor, amely ellenőrzi, hogy az adott objektum melyikhez szüksége van. Az alábbi parancsfájl kód egy olyan objektumhoz kapcsolódik, amely egy "Dummy" nevű színészet keres, majd egy "helyi pointer" nevű mutatót állít be rajta.

a MovableMan színész számára
ha actor.PresetName == "Dummy" akkor
helyi mutató = színész
szünet
vég
vég

Amit a fentiek szerint ellenőrizünk, minden játékos ellenőrizze a játékot, amíg egy "PresetName" nevű ügynököt talál "Dummy" -ként. Ekkor a mutatót "aktuális mutatónak" nevezi, és megállítja a "for" kifejezést "break" -el. A "színész" kifejezés egy aktornak mutatója, és a "helyi mutató" -nak adódik az egyszerűbb háttérinformációkhoz.

Itt van 2 másik "for" vonal, amelyek kapnak mutatókat az eszközökre és a részecskékre.

-- Eszközindex
a MovableMan elemhez
vég

-- Részecske-indikátor
a részecske a MovableMan.Particles do
vég

----- 4.0 - A Cortex Command Wiki funkciói és tulajdonságai -----
________________________

----- 5.0 - Sample script -----
________________________

--- Bánya ---
Ez a szkript egy egyszerű bánya, amely felrobban, amikor a színészek egy adott távolságon belül vannak a tárgytól a forgatókönyvvel.

-- Míg az objektum létezik
funkció Frissítés (ön)

-- Az összes szereplő ellenőrzése
a MovableMan színész számára

-- Egy függvényt és egy vektori tulajdonságot használ, amely megőrzi a színész és az objektum közötti távolságot a változó szkriptjével.
local distcheck = SceneMan: legrövidebbDistance (self.Pos, actor.Pos, true) .Magnitude

-- Az üzemben tartó ellenőrzi, hogy az ellenőrizendő távolság (a "local distcheck" változó kisebb-e 10-nél. Ha igen, akkor tegye meg a műveletet.
ha távozik <30 then

-- A GibThis () egy olyan funkció, amely céltudatosan megsemmisíti az objektumot.
én: GibThis ()

-- Állítsa le a kezelőt
szünet

-- Az if nyilatkozat vége.
vég

-- A "for" nyilatkozat vége.
vég

-- A "Frissítés (ön)" funkció vége.
vég

Kapcsolódó cikkek