Piccola guida su come implementare il LUA in XNA:
- Inanzitutto scaricate il lua interface da qui http://luaforge.net/projects/luainterface/
- Aggiungere la dll “LuaInterface.dll” nei riferimenti

Poi nella finestra che si apre selezionate la scheda sfoglia e individuate il file “LuaInterface.dll”, fatto ciò copiate la “luanet.dll” nella cartella bin\debug
Ora passiamo al codice, inseriamo i riferimenti a luainterface
Codice
…
using using LuaInterface;
…
Fatto ciò creiamo l’interprete lua
…
Lua lua = new Lua();
…
Ora il tutto è quasi pronto per essere usato, l’unica cosa che manca per adesso è un metodo per chiamare una funzione C# dal lua.
Inanzitutto il requisito è che le funzioni siano dichiarate come pubblic, per poterle richiamare abbiamo due alternative, o inseriamo una lista manuale
Codice
lua.RegisterFunction(“Nome funzione da lua”,this,this.GetType().GetMethod(“Nome funzione”));
Nome funzione da lua, è il nome con cui la funzione sarà richiamata da uno script lua
this l’oggetto a cui si fa riferimento
Nome funzione, è il nome della funzione che vogliamo richiamare.
Oppure possiamo inserire una funzione che ci permette all’avvio di sapere quali funzioni sono richiamabili.
Richiede però using System.Reflection;
Codice
void Popolate_Lua_Functions()
{
//Array che contiene i metodi
MethodInfo[] m;
//Prendo la lista dei metodi
m=this.GetType().GetMethods();
//Scorro i metodi
for (int i=0;i<m.Length;i++)
{
//Controllo se nel nome metodo c’è la parola Microsoft, C# inserisce prima le
//funzioni create dall’utente, così non ci sono problemi di sicurezza
if (m[i].Name.Contains(“Microsoft”))
{
break;
}
//Registro la funzione richiamabile
lua.RegisterFunction(m[i].Name,this,this.GetType().GetMethod(m[i].Name));
}
}
Per eseguire uno script LUA da hard-disko fate
Codice
lua.dofile(“script.lua”)
Io per esempio nel mio script ho
Load_Level(‘levels\\stanza prova.cbs’)
n=1
c=3
if (n+c)>2 then
quit()
end
e quando lo eseguo carica il livello, e se la somma di n e c è maggiore di 2 esce dal gioco