2010-06-27 17 views
2

Je me demande simplement si c'est même possible; comment faire des scripts non compliqués dans C#. En gros, disons que j'ai une structure en tant que telle:Scripting en C# - Bibliothèque portable pour XNA et 360?

Structure 
    int a 
    int b 
    int c 

    Function ParseValue(pString as String) 

     try 
       return interpret(pString) 
     catch 
      return 0 
     end try 

    End Function 

ParseValue serait où se trouve ma question, en particulier « interpréter ». 'Interpréter' est juste un espace réservé générique pour le code/implémentation que je recherche.

Supposons que je transmette une valeur pour pString comme 'a + b + c'. Ainsi, le code interpréterait la chaîne comme "renvoyer la valeur de l'ajout d'un + b + c" ensemble. Et si je ne peux pas faire ça, "return 0". Un bon exemple de devoir retourner 0 serait "(a + b)/c", et la valeur de c = 0 (ne peut pas diviser par zéro).

Est-ce possible? Je sais il y a longtemps que j'étais capable d'utiliser Microsoft Scripting Control pour obtenir des fonctionnalités similaires dans VB6, mais yah. C'est il y a 12 ans, et non compatible C#/XNA/360. Je pense: P

EDIT: La langue qui peut être interprétée n'a pas d'importance. Si je peux utiliser VB.Net ou C# et interpréter VBSCript ou JScript, je suis content de ça.

Répondre

0

Je ne suis pas au courant d'une bibliothèque de script spécifique disponible pour le .Net Compact Framework (c'est-à-dire: celle qui fonctionnerait sur la 360). Vous pouvez peut-être en trouver un, je n'ai pas regardé. J'ai vu un interprète Lua écrit en C#, mais je ne suis pas sûr que cela fonctionne avec le Compact Framework. (Et je ne me souviens pas où je l'ai trouvé en premier lieu.)

Cependant, vous pouvez charge pré-compilés assemblées dynamiquement sur la 360 (sur Windows, vous pouvez également les compiler dynamiquement, mais le 360 ​​est seulement capable de les charger), ce qui vous permettrait d'utiliser n'importe quel langage .Net comme langage de "script". Le problème, alors, est ce que vous gagnez en ayant un langage de script? Vous pouvez modifier les scripts sans redémarrer le jeu, mais vous devez tout de même passer par le processus de compilation, et le débogage devient beaucoup plus difficile. Compte tenu de la vitesse de compilation rapide de C#, je pense que vous êtes probablement mieux sans un langage de script pour votre jeu.