• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Lua
#1
Lua è un linguaggio di programmazione dinamico, riflessivo, imperativo e procedurale, utilizzato come linguaggio di scripting di uso generico. È molto usato per programmare i videogiochi

Caratteristiche del linguaggio

Le caratteristiche principali di Lua sono le funzioni, viste come "oggetti" di primo livello e quindi assegnabili a variabili, e l'uso di tabelle come strutture dati generiche. Queste caratteristiche permettono al linguaggio di implementare caratteristiche viste in linguaggi orientati agli oggetti senza che lo stesso lo sia.

Esempi

Il classico programma "Hello world" può essere scritto come:

Codice PHP:
print "Hello, world!" 

Il fattoriale è un esempio di funzione ricorsiva:

Codice PHP:
function factorial(n)
   if 
== 0 then
     
return 1
   end
 
   
return factorial(1)
 
end 

Questo esempio mostra come sia possibile, in Lua, ridefinire le funzioni del linguaggio:

Codice PHP:
do
   
local oldprint = print  -- salva la funzione come era definita da Luanon salvando il
                           
-- valore restituito dalla funzionema la funzione stessa  
   
print = function(s)     -- ridefinisce la funzione print
     if 
== "foo" then 
       oldprint
("bar")
     else 
       
oldprint(s
     
end
   end
 end 

Qualunque futura chiamata alla funzione print farà ora riferimento alla nuova funzione, e la vecchia funzione sarà accessibile soltanto dalla nuova versione della stessa.
Questo esempio mostra una caratteristica di Lua: la possibilità di definire dinamicamente tabelle (la struttura dati usata dal linguaggio). In questo caso si tratta di una tabella che associa al valore fibs[n] l'ennesimo numero di Fibonacci.

Codice PHP:
fibs = { 1}                                 -- valore iniziale per fibs[1] and fibs[2]
 
setmetatable(fibs, {                            
   
__index = function(fibs,n)                    -- chiama questa funzione se il valore fibs[nnon esiste
               fibs
[n] = fibs[n-2] + fibs[n-1]   -- calcola e memorizza il valore
               
return fibs[n]
             
end
 
}) 

Curiosità

Nel videogioco Fuga da Monkey Island, lo Scumm Bar diventerà un raffinato sushi bar ed il nome verrà cambiato in Lua Bar, a sottolineare l'adozione del nuovo linguaggio di scripting GrimE sviluppato in Lua.

Il firmware delle stampanti Olivetti quali Any_way, Simple_way e My_way, denominato HERCULE, è stato creato con il linguaggio di programmazione dinamico Lua.

Lua è usato molto spesso in ambito PSP per la programmazione di Homebrew.

Il Lua è anche usato per creare Addon compatibili con il MMORPG World of Warcraft

Il Lua è usato pure per creare script con il MMORPG Metin2.

Con Lua si sono creati inoltre numerosi script e trainer per il pluri-premiato gioco della Rockstar Games GTA IV

Nel videogioco per PC Baldur's Gate II: Shadows of Amn l'intelligenza artificiale dei personaggi è gestita in Lua.

È infatti possibile personalizzare interamente questi script per modificare il comportamento predefinito di ogni personaggio in base alle varie circostanze di gioco.

Fonte : Wikipedia
Sito Ufficiale : http://www.lua.org/
 
Rispondi
  


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  qualcono conosce il LUA scripting? daryl 7 2,036 25-10-2012, 10:58 PM
Ultimo messaggio: Skyline
  Lua vs Unreal Script & Lua vs Python Riddick 7 2,378 05-12-2010, 02:10 PM
Ultimo messaggio: Riddick

Vai al forum:


Browsing: 1 Ospite(i)