Lua skripte: primeri namestitve in zagona

Lua ni tolmačen jezik in generira bajtno kodo iz drugega programa, kot je Java. Ta program se izvaja na navideznem stroju Lua VM. Večina teh naprav se imenuje "stacks", vendar se Lua razlikuje po tem, da temelji na registrih in je ena prvih, ki se široko uporablja v igralnem sektorju. Prednost arhitekture registra je, da se izogne ​​veliki količini kopiranih podatkov in zmanjša obseg navodil za funkcijo. Lua VM ima avtomatsko upravljanje pomnilnika in nepotrebno pridobivanje podatkov, kar zagotavlja popolno konfiguracijo za scenarije hitrega izdelovanja prototipov.

Na kratko o Louvi

Lua je enostaven za učenje in hiter skriptni jezik s sintakso, podobno pascalom. To omogoča začetnikom programerjem pisanje lastnih programov. Uporablja se v mnogih igrah in aplikacijah za razširitev obstoječih funkcionalnosti in programerskih uporabniških sekvenc. Na internetu je veliko programov usposabljanja, ki vam pomagajo delati v tem jeziku, vključno z veliko informacijami na domači strani Lua.


Ta programski jezik so leta 1993 ustvarili programerji Roberto Jerusalem, Luis Enrique de Figuerido in Waldemar Celess na Univerzi v Rio de Janeiru, kjer se nahaja urad LabLua. Ime izvira iz portugalščine, kar pomeni "mesec" v prevodu. Eden od predhodnikov je bil SOL (Simple Object Language). Ker je ime Lua samostalnik, ni kraticane bi smela biti napisana kot LUA, namreč Lua. Je prilagodljiv jezik, uporablja se na več načinov:
  • Wikipedija uporablja Lua za predloge scenarijev.
  • VLC Media Player deluje s skripti Lua za skripte quik.
  • Lua se uporablja v industrijskih aplikacijah, kot je Adobe Lightroom.
  • Programi za vgrajene sisteme, kot je vmesni Ginga za digitalno televizijo.
  • Gry je vodilna igra za skripte, ki se na primer uporablja za ustvarjanje World of Warcraft in Angry Birds.
  • Vsakdo lahko poskusi uporabiti spletno kodo v Lua Demo z zanimivim načinom za raziskovanje in uporabo motorja igre.
  • Funkcionalnost tega programa se lahko uporablja v L? VE, Defold in seveda v Pico-8.


    Osnove sintakse

    Lua uporablja zelo poenostavljeno sintakso. Uporabniku ni treba uporabiti pik, ločenih z vejicami ali velike praznine, ker jih razlaga sam program. Vse spremenljivke v skriptih Lua za quik so globalne globalne. Zato je vedno treba določiti, kdaj so lokalne vrednosti potrebne za trenutno regijo in jih vnaprej objaviti. Dejansko je v praksi zelo malo primerov, v katerih so globalne vrednote resnično potrebne. Lokalno spremenljivko lahko definirate s ključno besedo local. Hkrati pa ni treba razglasiti njene vrednosti. Globalne spremenljivke pomenijo kontekst trenutnega scenarija in zato niso za vsak posamezen scenarij v igri, ki deluje neodvisno in samostojno.
    Spremenljivke lahko vsebujejo zaporedja številk, črk in podčrtov, vendar nezačeti s številko. Null predstavlja ključno besedo, kadar spremenljivke niso definirane. Neobjavljene se razlikujejo od deklariranih spremenljivk, ki niso pomembne. Primeri skriptov Lua:

    Kodni bloki in operaterji, če

    Bloki so določeni z določenimi ključnimi besedami, ki jim sledi "konec". Pogoji v stavkih if morajo slediti tipki "then". Če stavki uporabljajo "elseif", ne "else if". S praznim blokom lahko ustvarite novo prazno območje. Lua uporablja posebno vrsto podatkov, imenovano tabela, namenjena za ustvarjanje matrike, slovarje, zgoščevalne tabele, objekte drugih jezikov.Tabela je preprosto seznam parov ključ /vrednost, ki je lahko katera koli vrsta podatkov, tudi drugih tabel Logično vrednost lahko uporabite kot ključ. Ker je Lua dinamično vnešena, lahko imate v kombinaciji s tipkami in uporabniškimi izbirami katero koli kombinacijo tipov, ki jih morate določiti, preden namestite skripte Lua. Vrednosti tabel lahko definirate tako znotraj kot posamično. Običajno obstajata dva načina za pridobitev in nastavitev njihovih vrednosti, sintaksa "pika", na primer "myTable.a", in skladnja oklepaja, na primer, "myTable [" a "]". Pri uporabi nizov lahko uporabite samo skladnjo točk in je ni mogoče uporabiti, če se niz začne od številke.
    Upošteva se vsaka vrednost v tabeli, nič - če ni nastavljena. To pomeni, da je nemogoče ugotoviti, ali je vrednost deklarirana v tabeli ali pa je samo nič, če še ni bila definirana. To pomeni, da če ključi v tabelioznačeno in nastavljeno na nič, ne bo imelo nobenega učinka oziroma bo enako, kot če sploh ne bo določeno. V Lua numerične tipkovnice se začnejo z indeksom 1 in ne z 0. To je tisto, kar povzroča velik glavobol za programerje. Vgrajene elemente tabele lahko razdelite z vejico ali podpičjem.

    Zapleteni tip podatkov

    Tabele se obravnavajo kot zapleten tip podatkov v Lui - to pomeni, da se spremenljivke v njih samo nanašajo na isti predmet v spominu, tako da ne morete neposredno primerjati dveh vrednosti in pričakovati, da nekaj bodo storili. Lahko pa se neposredno primerjajo vrstice, številke, črke in druge primitivne vrste podatkov. Številke v Lui se uporabljajo samo v eni obliki - lastni številki. Ni takšnih vrst, kot so int, float, long, double in drugi, kot v drugih jezikih, in to je treba upoštevati pred namestitvijo Lua skriptov. Tehnično so vse vrednosti v Lua številke s plavajočo vejico.
    Lua lahko določi in poveča le operaterja "=". Ne vsebuje "+ =", "- =", "++" ali karkoli drugega. Operator združevanja je "". To operacijo lahko uporabite na linijah in številkah brez težav. Vendar pa ne morete združiti drugih vrst podatkov - logičnih ali tabelarnih. Dolžino tabele ali niza lahko dobite z operatorjem "#" in to deluje samo za matrike z numeričnimi indeksi. Na primer, koda ne bo delovala s tabelami z indeksi nizov.

    Vrste zank Loops

    Obstajajo štiri vrste ciklov Loop, ki v prevodu pomeni zanko ali zavoj. Medtem ko je (vmesni) je najenostavnejša oblikacikel in funkcije, kot bi bilo treba pričakovati v drugih jezikih, in pomeni, da se preverjanje izvaja pred začetkom notranjega bloka. Številčna za zanko (digitalno). Zanka uporablja lokalno spremenljivko na njeno območje in jo poveča ali zmanjša. Uporabnik napove in opredeli spremenljivko, ki naj se uporabi, in pomen cilja. Generic for loop (generirano) - uporablja funkcijo iteratorja. Kliče se s ponavljanjem vsake zanke in vrne vrednosti, ki bodo uporabljene v njej. Pari (pari) je funkcija iteratorja v svetovnem merilu. Sprejema tabelo kot argument, vrne indeks in vrednost vsake spremenljivke v tabeli. Koda bo dvignila celo ne-ničelne indekse. Ima »brata« - ipairs, ki dela enako, le da deluje samo z numeričnimi indeksi in se ustavi, ko je dosežena nič. Ponovitvena zanka je podobna času, razen da se preverjanje pogojev opravi na koncu bloka in ne na začetku. Preden odprete skript lua, ne pozabite, da se bo koda znotraj začela vsaj enkrat. Ponavljalni cikel se običajno izogiba razvoju tega jezika, saj je njegov precedens omejen in ga je težko brati, ker ne uporablja standardne sintakse doend.

    Metoda funkcije

    Funkcije so še en kompleksen tip podatkov, ki jih lahko posredujete kot spremenljivke, in jih lahko pokličete tudi za interno izvedbo kode. Podobne so metodam v drugih jezikih. Funkcijo v Lui lahko definirate na dva načina. Prvi oglas je globalen, ker ni lokalne ključne besede. Pravilomaglobalne funkcije so sprejemljive. Kljub temu jih lahko uporabnik po potrebi še vedno imenuje lokalno, tako da postavi "lokalno" fronto. Spremenljivke lahko tudi deklarirate, preden identificirate funkcije, ki so še vedno podobne drugim tipom podatkov. Lahko jih prenesete, dodelite spremenljivke ali sprejmete toliko argumentov, kot jih potrebujete, z uporabo sintakse "". Dejanski predmet je "tuple" (tuple), zato ga morate obdati s kodrastimi oklepaji in pretvoriti podatke v tabelo. Tuple je preprosto seznam imen, kot so parametri funkcije, ki lahko vrnejo več vrednosti, in jih lahko imenujemo spremenljivke. Če postavite funkcijo v tabelo, jo lahko pokličete na dva različna načina. Skladnja standardne točke ali dvopičje pošlje matriko kot prvi argument.

    Globalni imenski prostor

    "Loua" vsebuje več tabel v globalnem imenskem prostoru, ki vsebujejo pomožne funkcije, kot so "niz", "tabela" in "math". Zato uporabnik ne sme nikoli določiti spremenljivke iz imenovanega, ker bodo prerazporedile nize, ki vsebujejo koristne funkcije. Obstajata dve tabeli, ki sta skupni vsem skriptom na strežniku ali odjemalcu (vendar ne za oba) - to je "_G" in "deljeno". Prva je resnično globalna, ki se izvaja z ločenimi skripti, tako da če želite dobiti ali nastaviti vrednosti iz nje, uporabite "_G.something". "Strings" (strune) - ta funkcija Lua lahko na več načinov definira literalne in multilinske podatke z dvojnimi kvadratnimi oklepaji. In tudimed oglatimi oklepaji lahko postavite poljubno število enakih znakov (=) ([=== [] ===]). So uravnotežene, lahko vključujejo zaporedja v notranjosti, kot]]. Lua ima tudi svoj nabor vgrajenih funkcij za manipulacijo vrstic in lastno, utišano različico regularnih izrazov, ki se imenujejo vzorci nizov.

    Game Lunar Script

    To je zelo enostaven prvi korak pri pisanju programa, vendar so dobra izhodišča za razbijanje Garry Mod 10 Lua skript. Prvi korak je ustvariti dejansko datoteko skripta za Lua. Odprite besedilo ali urejevalnik - prenosni računalnik bo delal v ta namen. Nato shranite to datoteko tako, da vnesete kot na sliki.
    Kje:
  • - uporabniško ime za gesla.
  • - Steamov imenik za Garryjev Mod.
  • Privzeta lokacija za skripte Lua za garry mod je običajno "C: Program FilesSteamsteamappsgarrysmod", vendar se lahko razlikuje od "autorunclient" na vašem računalniku. Vse skriptne datoteke, ki so nameščene v tem imeniku, se zaženejo, ko se Lua začne na odjemalcu, na primer, ko se začne nova igra ali se uporabnik pridruži strežniku. Nato ustvarite datoteko Hello World in ji dodajte skriptni skript lua mod. To je najlažja možnost.
    To se lahko zdi nekoliko zmedeno. Skript izpiše vsebino tabele (kateri nizi ali seznami se imenujejo) in prestreže podatke v ukazni ukaz, da potrdi, da je treba definirati funkcijo, ki ne sprejema nobenih parametrov in ne vrne vrednosti, ampak nujno nastavi "konec" na koncu svojih ukazov. Funkcije so modularni odrezki kodlahko uporabite večkrat. Ta primer prikazuje, kako izvajati skript Lua. Tukaj se ustvari seznam nizov, vendar lahko uporabnik doda tudi druge objekte. Tabele so asociativne ali hašiške. To pomeni, da se lahko vsak element na seznamu sklicuje na ključ.
    Ti ukazi natisnejo vse elemente tabele, struktura pa se imenuje zanka. Bodite pozorni na par myTable, ki se zažene enkrat za vsak element in vrne par ključ /vrednost za vrednosti na seznamu. Vrednost je element v tabeli in ključ je le način za povezavo z njo. Ta primer prikazuje, kako izpisati spremenljivke besedila in vrednosti z istim ukazom tiskanja. Spremenljivke "key" in "value" sta nastavljeni v zgornjem ciklu. Bodite pozorni na "" med vrsticami in spremenljivkami. Simbol "" je operater združevanja Lua. To pove jeziku, ki ga potrebujete, da skupaj zlepite dva elementa in ju obravnavate kot en besedilni niz ".concommand.Add":
  • my_test_function;
  • myTestFunction.
  • Snemanje ustvari ukaz konzole, ki zažene samo začeto funkcijo. Njegov prvi parameter je ime nadzorne skupine, v tem primeru: "my_test_function". To je tisto, kar uporabnik vnese v konzolo načina Garry za zagon skripta. Drugi parameter je funkcija zagona, v tem primeru: myTestFunction. To datoteko je treba shraniti pozneje. Potem preizkusijo scenarij in sprožijo novo igro Garryjevega moda. Nato odprite konzolo s pomočjo tilde (~). Če se ne prikaže, jo morate omogočiti tako, da v vrstico na dnu plošče vnesete "my_test_function". Ko se zažene, se bo začelo samodejno izpolnjevanjeZ imenom ukaza, pritisnite Enter, da ga zaženete.

    Značilnosti Lua-Quick-Try-Out

    Ta konzola je namenjena neposrednemu vnosu kode Lua (na primer ukazni ukaz Lua (8 + 9) takoj odda rezultat 17). Njegove funkcije:
  • Glavno okno za izvorno kodo s svojimi funkcijami shranjevanja in prenosa.
  • Razhroščevalnik skript z razdelki, enostopenjskim izvajanjem in spremenljivim pogledom.
  • Funkcije za ustvarjanje tabel.
  • Funkcije za izdelavo diagramov.
  • Funkcije za ustvarjanje grafičnih slik.
  • Funkcije za izdelavo vektorskih grafov.
  • Spletna pomoč za ustvarjanje funkcij Lua.
  • Točke zaustavitvene konzole lahko nastavite s klikom ob številki vrstice. Če je omogočeno razhroščevanje, bo pogled spremenljivke viden na desni strani glavnega okna. Velikost lahko spremenite tako, da povlečete levo obrobo. Pri vklopu ali izklopu se shranijo in obnovijo različne nastavitve za način "vklop" ali "izklop". S kolescem miške lahko spremenite vidno velikost grafikona in grafike. Z desno miškino tipko odprete kontekstni meni za grafikone z njihovimi funkcijami povečave. SAMP Lua Scripts je knjižnica lua za Moonloader, ki dodaja nekaj ukazov za poenostavitev spreminjanja SA: MP, SAMP. Dogodki vam omogočajo, da na zelo enostaven način upravljate vhodne in izhodne omrežne pakete SA in MP. Podatke lahko ponovno napišete tako, da vse argumente v tabeli nastavite v pravilnem vrstnem redu, ali lahko prekinete obdelavo kateregakoli paketa tako, da vrnete false, kar preprečuje.Spremenite položaj igralca pred namestitvijo Preden namestite skripto za Lua skript, lahko dodate svoj paketni vodnik.

    Distribucija Lua-WoW

    To je distribucija izvorne kode Lua, ki je prilagojena okolju dodatkov World of Warcraft. Njegovi podatki:
  • Upravitelji: morlando.
  • Uporabniki: morlando.
  • Licenca: MIT /X.
  • Jezik: c, lua 5.
  • Oznake: prevajalci, orodja za testiranje.
  • Operacijski sistemi: makri, okna, os avtonomija.
  • Ta jezikovna različica je konfigurirana tako, da se ujema z okoljem Lua World of Warcraft. Vse nastavitve združljivosti 5.0-5.1 so onemogočene, razen openlib. Bitlib knjižnica deluje. Nekateri wow lua skripti - specifične, lua-knjižnica funkcije, ki se izvajajo. Program zagotavlja globalne vzdevke za funkcije "Lua.string.format", lahko uporabijo izbiro argumentov iz Lua 4.0. Datoteke binarnih Windows, ki so vključene v ta prenos, so statično povezane z zmogljivostjo. Pri uporabi z nekaterimi drugimi paketi uporabnik morda ne bo deloval po pričakovanjih. Zgodovina različic:
  • V112 - Dodan čiščenje, tostringall, projekt Visual Studio je nadgrajen na Visual Studio 2008 Visual C ++. Runtime je zdaj statično povezan, kar mora odpraviti nekatere težave, povezane z lua-wow z nekaterimi Windows.
  • Lua skripte v34 c - dodan strrelpace (string.replace, wow.strreplace).
  • V1101 - msvcr80.dll se doda v okna projekta.
  • V110 - ponovno definirane datoteke readme. Preimenovani projekti msvc in imena izhodov exe. Projekt msvc vključuje ikono in Lua sredstva za izvedljive datoteke.
  • V1.9 - Dodane globalne različice trigonometričnih funkcij. Program pravilno uporablja stopnje .strsplit,natisne ustrezno sporočilo o napaki, če prekorači sklad, kar je praktično nemogoče s strjoin.
  • V1.8 - Posodobljena združljivost 5.0 openlib, ker WoW sploh ne uporablja libs.
  • V1.7 - GCPAUSE se je spremenila v 110 na WoW 2.1. Popravljeno je bilo več različnih opozoril prevajalnika.
  • V161 - dodan #define LUA_LIB za lwowlib & amp; lbitlib popravi težave pri sestavljanju Lua skriptov za sampo.
  • V1.6 - bitlib nadgrajen na najnovejšo različico. Zdaj pravilno uporablja 32-bitna cela števila, kot je WoW. Globalni vzdevki za bitlib in table.setn so bili izbrisani, ker ne obstajajo v WoW.
  • V151 - prezre zaporedje bajtov UTF-8.
  • V1.5 - dodan sistem za odpravljanje napak, nekatere manjše optimizacije in poenostavitve kod.
  • V1.4 - dodana je bila izbira argumenta string.format.
  • V131 - Odpravljena težava s programom Makefile.
  • V1.3 - Dodane posebne funkcije, globalni vzdevki, css Lua skripte.
  • V1.2 - Ta paket se lahko sedaj uporablja kot nadomestilo za standardno izvorno distribucijo Lua: projekt MSVC, vključno z vnaprej prevedenimi binarnimi datotekami Windows, je zdaj v podimeniku msvc, druga struktura imenika pa ne.
  • V1.1 - Dodan BitLib. Optimizirana velikost datoteke Luac.exe. Vključuje testne programe.

    Pico-8 motor za igre

    Pico-8 je fantastičen program, ki posnema polno igralno konzolo z omejenimi 8-bitnimi specifikacijami. Ima vsa potrebna orodja za programiranje v Lui. Razlog, zakaj uporabniki izberejo Pico-8, je, da ga je mogoče uporabiti neposredno iz škatle, brezPotreba po namestitvi ali zunanji urejevalniki, so vsa orodja vključena v paket Lua skriptov za sampo, usposabljanje pa je preprosto.
    Kako:
  • Običajno se imenuje prvi program, ki je ustvarjen v novem jeziku, program "Zdravo svet", za programski jezik Lua pa "Hello Lua".
  • Prenesi Pico-8.
  • Namestitev in zagon.
  • Po prenosu boste prejeli vabilo «& gt;».
  • Če želite pregledati možne ukaze, pritisnite tipko ESC. Zdaj, ko je urejevalnik odprt, vnesite kode, prikazane na zgornji sliki.
  • Ponovno pritisnite ESC, da se vrnete na vabilo, vnesite CLS in nato RUN.
  • Pridobite prvo aplikacijo Lua na Pico-8.
  • Če želite shraniti skript, uporabite ukaz SAVE: SAVE HELLOLUA.
  • Če želite delati s programom, lahko uporabite funkcijo BTN (), ki omogoča odziv na tipko.
  • Če želite imeti več grafičnih zmogljivosti, uporabite dve posebni funkciji za povratni klic, imenovani UPDATE in _DRAW.
  • Pritisnite ESC, da odprete urejevalnik kod, vnesete ali kopirate in prilepite kodo kot na spodnji sliki.
  • Pritisnite tipko za izhod v sili, da se vrnete na konzolo, in vnesite RUN.
  • Pico-8 je namenjen samo velikim črkam, tako da lahko vtipkate pisavo, ni potrebe po uporabi Shift ali Caps-lock. Urejevalnik ima tudi sintaksno barvo za kodo. Če pogledate v zgornji desni kot urejevalnika, lahkoglej nekaj ikon. Vgrajena orodja za ustvarjanje duhov, zemljevidov, zvokov in glasbe. Ta primer je dokaj preprost, vendar daje idejo urednika in jezika. Če želite raziskati bolj zanimive primere, lahko obiščete imenik DEMOS. Za to vnesite INSTALL_DEMOS. Ko odprete imenik DEMOS z nekaj primeri študijskih programov. Ena od glavnih prednosti Lua je njena preprostost. Nekatera podjetja uporabljajo ta jezik samo zato, ker menijo, da bodo njihovi zaposleni lahko bolje delali. Nekateri zelo preprosti jeziki, kot sta Bash ali Batch, ne bodo dovolj močni, da bi opravili potrebne naloge, vendar je Lua zmogljiv in enostaven program. Druga pomembna prednost Lua skriptov za css v34 je njihova sposobnost izvajanja, ki je prepoznana kot ena najpomembnejših značilnosti tega izdelka skozi ves razvoj. Igre, kot so World of Warcraft ali ROBLOX, lahko vključijo Lua v svoj program.

    Sorodne publikacije