Premiers pas en Lua utiliser lua en C

Premiers pas en Lua utiliser lua en C, tutoriel programmation en Lua document PDF.

Introduction
Lua est une bibliothèque open source très légère, portable, qui permet de nombreuses possibilités de script. Lua est utilisée pour des jeux commerciaux tels que Homeworld 2, Blitzkrieg, SpellForce et bien d’autres encore. La syntaxe du langage de script Lua ressemble fort à du Pascal, et est très simple à utiliser.
L’intérêt d’utiliser ce genre de bibliothèques est qu’elles permettent de modifier le comportement d’un programme sans avoir à le recompiler. On peut voir ça comme des fichiers de configurations externes.
Ce tutorial a pour but de vous montrer comment utiliser Lua dans vos programmes C#, qu’il s’agisse de jeux ou non. En effet, comme indiqué plus haut, Lua peut aussi servir de langage de configuration de programme.
Préparation
Ca y est ! Vous avez décidé d’utiliser Lua dans votre programme. Il vous faut maintenant vous procurer l’interpréteur Lua pour C#. Vous en trouverez un à cette adresse :http://luaforge.net/projects/luainterface/ . La version utilisée dans ce tutorial est la version 1.3.0.
Une fois l’archive téléchargée, décompressez-la dans le répertoire de votre choix. Dans lerépertoire bin, vous trouverez les trois fichiers qui nous intéressent : luanet.dll, lua50.dll, LuaInterface.dll. Pour l’instant, conservez leur emplacement en tête.
Nous allons maintenant ouvrir un nouveau projet C# avec SharpDevelop. Pour faire au plus simple, nous allons faire une Application Console. Nommons-la LuaTutorial. Nous disposons doncde notre classe principale MainClass dans le fichier Main.cs.
Premiers pas en Lua
Pour commencer, nous allons créer un interpréteur Lua. C’est assez simple…
Lua luaInterpret = new Lua();
C’est cet objet qui nous permettra d’utiliser Lua. Pour commencer doucement, nous allons créer deux variables Lua, que nous afficherons en C#. Notez bien que ces variables sont crées dans l’interpréteur Lua, et non dans le programme C#. Vous remarquerez qu’aucun type n’a été déclaré :
Lua est un langage typé dynamiquement, au contraire du C#.
luaInterpret[« chaine »] = « Une chaine »;
luaInterpret[« entier »] = 10;
Maintenant que ces variables sont créées au niveau de l’interpréteur, nous allons les récupérer pour les afficher. Lua ne travaillant qu’avec des doubles, l’entier sera récupéré sous la forme d’un double.
string chaine = (string) luaInterpret[« chaine »];
double entier = (double) luaInterpret[« entier »];
Il ne reste plus maintenant qu’à modifier la sortie textuelle sur la Console en utilisant nos nouvelles variables.
Console.WriteLine(« chaine = {0}\nentier = {1} », chaine, entier);
Si tout va bien, vous devriez avoir en sortie le contenu des variables.
Et si nous faisions un peu travailler l’interpréteur ? Avant la sortie en Console, nous allons envoyer un ordre à l’interpréteur. Pour cela, nous allons utiliser la méthode DoString(string chunk). Cette méthode prend en paramètres une chaîne de caractères correspondant à du code Lua.
Généralement, le code Lua sera plutôt enregistré dans des fichiers externes à l’exécutable. Nous verrons cela plus tard, pour l’instant, donnons un bout de code brut à l’interpréteur :
luaInterpret.DoString(« entier = entier*2; »);
Fonctions et Réflexion
Avec ce que nous avons vu précédemment, il est donc possible de préparer quelques scripts basiques en Lua, qui agrèmenteront vos programmes. Néanmoins, on arrive vite à la limite de ce qui est possible.
La fonction Register Function(…) va nous permettre d’étendre la possibilité de nos scripts.
Cette fonction, en utilisant la réflexion de .NET, va enregistrer des fonctions écrites dans le programme en C# dans l’interpréteur Lua. Ceci aura pour conséquences que ces fonctions pourront être appelées dans nos scripts !
Pour commencer, nous allons créer une petite classe toute simple dans notre fichier de code :
class Prix
{
public float prixEuros;
public Prix(float p)
{
prixEuros = p;
}
public float PrixEnFrancs()
{
return prixEuros*6.6557f;
}
}
Lua orienté-objet
Maintenant que nous avons vu comment enregistrer nos fonctions C# pour les utiliser dans les scripts Lua, il est temps de passer à la vitesse supérieure. En effet, la limite imposée par la méthode précédente est la présence d’un objet cible auquel on rattache les fonctions. Il n’est pas possible de manipuler directement les objets. Nous allons nous intéresser à ça dans cette partie.
Pour commencer, modifions la classe Prix pour lui rajouter une dénomination, ainsi qu’une fonction de ristourne :
public string denomination = «  »;
public void Ristourne()
{
prixEuros *= 0.75f;
}
Nous allons ensuite créer une classe Facture qui accueillera plusieurs objets Prix (dans un ArrayList), via une méthode que nous enregistrerons. N’oubliez pas de rajouter la référence à System.Collections..

LIRE AUSSI :  Les patrons de fonctions

………

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Premiers pas en Lua utiliser lua en C (288 KO) (Cours PDF)
utiliser lua en C

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *