Tutorial on lua - articolele mele - catalog de articole

intrare
Acest tutorial vă va învăța cum să utilizați Lua. Este scris pentru persoanele care nu s-au întâlnit până acum cu programare deloc și, prin urmare, nu va folosi cuvintele complexe care se găsesc în alte manuale. Va fi mai bine dacă știți deja cum să lucrați cu ini-cod înainte de a începe să învățați programarea.







1.0 - Noțiuni de bază
-> 1.1 Crearea unui fișier Lua
-> 1.2 Atașarea unui script la un obiect

3.0 - Lucruri Lua
-> 3.1 Etapele scenariului
-> 3.2 Funcții
-> 3.3 Indicatori

4.0 - Funcții Wiki și proprietăți

5.0 - Exemplu de script
-> 5.1 Mina

----- 1.0 - Home -----
________________________
Lua permite obiectelor să facă ceea ce în mod normal nu ar fi capabil să facă sau să creeze efecte speciale.

- 1.1 Crearea unui fișier Lua-

Principiul scrierilor Lua este că scripturile sunt atașate obiectelor create cu ajutorul ini. Pentru a face un fișier Lua într-un notebook simplu în Windows, creați doar un fișier text nou, mergeți la meniul "Fișier", "Salvare ca". Schimbați "Tip fișier:" în "Toate fișierele". și modificați ".txt" în numele fișierului la ".lua". Dacă nu există o extensie, trebuie doar să adăugați ".lua" la sfârșitul numelui fișierului. Apoi dați clic pe "Salvați". Ai creat un fișier Lua.

Sfat de la traducator: Utilizați Notepad ++ în loc de notepad-ul standard, deoarece arată toată sintaxa lui Lua și, în general, este mai ușor să lucrați în el.

- 1.2 Atașarea unui script la un obiect -

Pentru a atașa un script Lua unui obiect creat într-un fișier ini, puneți doar "ScriptPath = <путь к файлу Lua>"în blocul de cod al obiectului cu tabularea corespunzătoare.

----- 2.0 - Bazele Programării Lua -----
________________________

Tipurile de date sunt tipuri de date care sunt utilizate pentru variabile și proprietăți. În CC există 5 tipuri de date de bază: numere, text, boolean (variabilă booleană), vector și zero (zero). Primele 2 - este clar din titlu este acest lucru. boolean este o variabilă booleană; valoarea sa este adevărată (adevărată) sau falsă (falsă). Vectorul în CC este coordonatele (X, Y). Sunt utilizate date numerice, care imprimă numai numere. Textul este utilizat atunci când există o pereche de citate ("") cu textul dintre ele. Se utilizează vectorul urmând cuvântul "Vector" cu 2 numere separate printr-o virgulă în două paranteze. Zero este notată ca "zero" (nu trebuie confundată cu numărul zero).

--Variabilă booleană
adevărat
fals

--vectori
Vector (1,1)
Vector (5,2)
Vector (-7,6)

--Zero (nimic)
zero

Variabilele sunt ceva în Lua, la care poți da înțeles. Ele sunt folosite pentru a stoca informații astfel încât să le poți reaminti mai târziu. O variabilă constă din propriul nume, un singur semn "=" și o valoare.

Pentru a modifica o variabilă, introduceți din nou aceeași variabilă cu noua valoare:

De asemenea, puteți face ca variabila să aibă aceeași valoare ca și cealaltă variabilă, stabilindu-i valoarea ca fiind numele unei alte variabile:

Ca rezultat, X va fi 5.

Există 2 tipuri de variabile: variabilă globală și locală. Variabilele globale pot fi modificate prin scriptul oricarui obiect, schimband din nou valoarea, si poate exista doar o variabila cu acel nume. Variabilele globale sunt similare cu cele din exemplele de mai sus.

Variabilele locale sunt variabile care pot avea mai multe copii, fiecare dintre acestea fiind legat de obiect cu scriptul care le-a creat. Pentru a crea o variabilă locală, tastați "local" înainte de numele variabilei, separate de un spațiu. Setarea valorii unei variabile locale egale cu valoarea altei variabile locale funcționează în mod similar cu variabilele globale.

varA = 5
varB var = varA

Această acțiune a făcut variabila "varB" egală cu 5. Rețineți că cuvântul "local" nu a fost utilizat atunci când am selectat variabila "varA".

O altă proprietate utilă a variabilelor este că puteți utiliza variabilele pentru a seta o proprietate specifică într-un obiect și pentru a stoca obiectul într-o variabilă. Prin stocarea unui obiect într-o variabilă, este mai ușor să interacționați și să-l apelați mai ușor un pointer. Pentru a utiliza variabilele, pentru a schimba proprietatea unui obiect, aveți nevoie de o variabilă care este un indicator specific obiectului (vom da seama mai târziu), urmată de o perioadă, nume de proprietate, un "=" și o valoare.

"lucru" este un pointer la un obiect, "GetsHitByMOs" este o proprietate obiect în ini, iar "false" este o valoare.

De obicei, este folosit un pointer, care este deja definit ca "auto". Indicatorul se referă întotdeauna la obiectul la care este atașat scriptul.

Principiul Lua (și programarea la toate) este de a verifica operatorii pentru a vedea dacă valoarea lor este adevărată și de a face ceva dacă este (sau nu). Să ne uităm la codul de mai jos.

dacă X == 1 atunci
<содержимое>
capăt

Acest cod verifică dacă variabila "X" este "1", apoi face "conținut" ("<содержимое>"nu acțiunea reală, doar indicatorul de locație pentru celelalte comenzi pe care le vom obține mai târziu) dacă afirmația este adevărată. Notați" sfârșitul "din partea de jos a blocului de cod care spune"<содержимое>", o parte din această declarație este completă.Dacă nu tastați" sfârșit "după declarația (sfârșitul declarației după <содержимого> prea), atunci veți primi o eroare. De asemenea, rețineți că există 2 semne "=" în linia "if". == "este necesar să verificați egalitatea și" = "pentru a seta valoarea variabilei / proprietății.







-- mai mică sau egală cu
<=

-- mai mare sau egal cu
> =

În cadrul declarațiilor "if", pot fi găsite operatorii "else". Acești operatori verifică dacă condiția instrucțiunii "if" este adevărată și dacă nu este adevărată (nu este satisfăcută), atunci
atunci acțiunile sunt efectuate în conținutul lor.

dacă X == 1 atunci
<содержимое>
altfel
<содержимое>
capăt

Starea "Elseif" este similară celei de-a doua declarații "if" și funcționează și:

dacă X == 1 atunci
<содержимое>
altfel X = = 2 atunci
<содержимое>
capăt

Pot exista multe condiții "elseif" în declarație, dar numai una "altceva".

Listele (numite și tabele și matrice) sunt ca variabilele care pot avea mai multe valori. Pentru a crea o listă, tastați numele listei, urmat de un "=" și o pereche de paranteze <>.

Adăugarea unei valori în listă este similară cu atribuirea / modificarea valorii unei variabile. Trebuie să imprimați numele listei, urmat de o pereche de paranteze pătrate cu numărul specificat din listă, cu un "=" și apoi o valoare.

lista [1] = 1234
lista [2] = 37065

Un caracter numeric cu un nume de listă înainte de aceasta, spune numărul de elemente din listă.

Aceeași listă ca și în exemplele de mai sus are o valoare de "număr de verificare" egală cu 2.

Pentru a șterge toate valorile din listă, introduceți numele listei, semnul "=" și o pereche de paranteze goale. Pentru a șterge o singură valoare, setați această valoare la zero.

-- Ștergerea întregii liste
thelist = <>

-- Ștergerea unei valori
listă [1] = zero

Listele pot fi globale și locale, ca variabile.

thelist = <>
local <>

--- 2.6 Declarația For ---

Deoarece operatorii sunt obișnuiți să facă o mulțime de acțiuni repetitive într-o singură secțiune scurtă din memoria scriptului. Formatul pentru scrierea operatorului "For" este de mai jos.

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

Exemplu de utilizare a operatorului "pentru".

pentru i = 1, 5 nu
<содержимое>
capăt

Să examinăm fiecare parte în detaliu:

pentru
- Porniți cuvântul cheie

i = 1
- "i" este o variabilă temporară utilizată de operatorul "pentru" pentru a salva de câte ori a efectuat acțiuni (inclusiv 1). "i" poate fi schimbat la orice nume ca variabilă. "1" este valoarea inițială pentru contor.

5
- Numărul de repetări "<содержимого>“.

Pentru a întrerupe instrucțiunea "pentru", includeți "pauză" în instrucțiunea "if", care verifică valoarea instrucțiunii "for" pentru a satisface condiția.

pentru i = 1, 5 nu
dacă i == 3 atunci
pauză
capăt
capăt

----- 3.0 - Cortex Command Lua chestii -----
________________________

--- 3.1 Etapele scriptului ---

Stadiile scripturilor sunt părți ale scriptului care sunt executate numai atunci când obiectul a fost creat, atunci când acesta există sau când este distrus. Scenariile scenariului necesită, de asemenea, declarații de "sfârșit", precum și declarații de condiție.

-- <Содержимое> în intervalul dintre "funcția Creare (auto)" și "sfârșit" va funcționa numai atunci când obiectul este creat. (apare o singură dată)
funcția Creare (auto)
<Содержимое>
capăt

-- <Содержимое> în intervalul dintre "funcția Update (auto) și" end "va funcționa numai atunci când acest obiect există.
funcția Update (auto)
<Содержимое>
capăt

-- <Содержимое> în intervalul dintre funcțiile "Destroy (self)" și "End" va funcționa numai atunci când acest obiect este distrus (apare o singură dată)
funcția Destroy (auto)
<Содержимое>
capăt

Funcțiile fac parte din Lua, care sunt deja integrate în joc și interacționează cu conținutul din Comanda Cortex. Formatul funcției - numele grupului funcției, numele colonului, numele funcției și parametrii săi (datele necesare pentru ca aceasta să funcționeze) sunt separate prin virgule în paranteză. Cele mai multe nume de grup ale funcției Comandă Cortex pot fi înlocuite cu un pointer la ceva cu care pot interacționa. Exemplu de mai jos:

Informații despre funcții de la Wikipedia Cortex Command Lua:

AddImpulseForce
Adăugă forță de impuls (sau moment instantaneu) la acest MovableObject pentru următoarea dată când este apelată Update ().

- Un Vector cu vectorul de forță de impuls care va fi adăugat la acest Moment MovableObject următor Update (). În kg * m / s.
- Un vector cu offset, în METERS, unde se aplică impulsul în raport cu centrul acestui MovableObject.

"anactor" este un pointer către actor, "AddImpulseForce" este numele funcției, iar conținutul parantezei este datele necesare funcționării funcției. În blocul de informații despre funcții, "Valoarea returnată" este ceea ce funcția iese atunci când este executată.
Majoritatea funcțiilor din Comanda Cortex pot fi găsite în wiki, deci asigurați-vă că ați verificat-o.

Ei bine, am reușit în cele din urmă la indicatoare!
În comanda Cortex, pointerii sunt variabile care "stochează" un obiect în sine. Sau vă puteți imagina acest lucru ca o săgeată gigantică îndreptată spre un obiect. indiferent de proprietățile pe care le-ați setat pe un pointer sau dacă utilizați o funcție pe acesta, acesta va afecta obiectul la care "indică".

Există mai multe moduri de a crea pointeri. Utilizați de obicei o instrucțiune specială "pentru" care verifică toate obiectele de un anumit tip și este un operator care verifică dacă obiectul este cel care vă trebuie. Piesa de cod de script de mai jos este atașată la un obiect care caută un actor, numit "Dummy" și apoi stabilește un pointer numit "pointer local" pe el.

pentru actor în MovableMan.Actors nu
dacă actor.PresetName == "Dummy" atunci
indicatorul local = actor
pauză
capăt
capăt

Ceea ce face piesa de mai sus este verificarea tuturor actorilor din joc până când găsește un agent cu "PresetName" ca "Dummy". Apoi, acest indicator stabilește indicatorul pentru acest actor ca "pointer local" și oprește instrucțiunea "for" cu "break". Termenul "actor" este un indicator pentru un actor și este trecut la "pointer local" pentru informații de bază mai simple.

Aici sunt 2 alte linii "pentru" care primesc indicii pentru dispozitive și particule.

-- Index de dispozitive
pentru elementul din MovableMan.Items do
capăt

-- Indicator de particule
pentru particula în MovableMan.Particles face
capăt

----- 4.0 - Funcții și proprietăți în Wiki Cortex Command -----
________________________

----- 5.0 - Script script -----
________________________

--- 5.1 Mina ---
Acest scenariu este pentru o mină simplă, care explodează atunci când actorii se află într-o anumită distanță de obiect cu scenariul.

-- În timp ce obiectul există
funcția Update (auto)

-- Verificarea tuturor actorilor
pentru actor în MovableMan.Actors nu

-- Folosește o funcție și o proprietate vectorie pentru a stoca distanța dintre actor și obiect cu scriptul din variabilă.
local distcheck = SceneMan: cel mai scurtDistance (auto.Pos, actor.Pos, true) .Magnitude

-- Operatorul care verifică dacă distanța care urmează să fie verificată (variabila "local distruck") este mai mică de 10. Dacă da, luați acțiunea.
dacă este distrus <30 then

-- GibThis () este o funcție care face o distrugere intenționată a unui obiect.
auto: GibThis ()

-- Opriți operatorul
pauză

-- Sfârșitul instrucțiunii if.
capăt

-- Sfârșitul declarației "pentru".
capăt

-- Sfârșitul funcției "Actualizare (auto)".
capăt







Articole similare

Trimiteți-le prietenilor: