IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

[LUA]appeler ses scripts


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1
    Par défaut [LUA]appeler ses scripts
    Nyu, je bosse sur un moteur de shmup depuis un moment et j'aimerais intégrer LUA pour le scriptage (qui est pour l'instant en XML). J'ai télécharger les sources, compilé et commencé a jouer avec la bête. Petit problème je suis vraiment paumé sur certain point (et argh toute la doc est en anglais). J'ai bien sur regardé les jolies tuto sur developpez.com.


    Bon trêve de blabla voici mon problème, j'aimerais charger mes scripts a l'avance et les lancer plus tard. Donc pour tester j'ai fait un exemple bidon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
        lua_State * state;
        state = lua_open();
        luaopen_string(state);
        luaopen_math(state);
     
     
     
        if (luaL_dostring (state, "test=math.cos(1)") == 1)
            cout << "erreur \n";
     
        lua_pushstring(state,"test");
        lua_gettable(state,LUA_GLOBALSINDEX);
        double result = lua_tonumber(state,-1);
        cout << "Value of result is "<< result << endl;
     
     
        if(luaL_loadstring(state, "test= test + math.cos(1)") != 0)
                cout << "erreur " << endl;;
     
        lua_CFunction test = lua_tocfunction (state, -1);
        if(test == 0)
            cout << "erreur " << endl;
        else
            for (int n =0; n < 100; n++)
            {
                lua_pushcfunction(state, test);
                lua_pcall (state, 0, LUA_MULTRET, 0);
            }
     
        lua_pushstring(state,"test");
        lua_gettable(state,LUA_GLOBALSINDEX);
        result = lua_tonumber(state,-1);
        cout << "Value of result is "<< result << endl;
        lua_close(state);

    Problème lua_tocfunction me renvoie 0, j'en conclue que la méthode est mauvaise, seulement comment récupérer le dernier script chargé ?

  2. #2
    Membre très actif
    Profil pro
    Développeur indépendant
    Inscrit en
    Août 2004
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2004
    Messages : 374
    Par défaut et ta fonction c et son prototype.
    je pense que tu as mal compris.
    en effet lua_tocfunction, convertit le parametre dans la pile en une fonction c, mais encore faut il que cette fonction ait été déclarée et implementée..
    et que le parametre correspondante a cette fonction soit valide..


    pour memoire.; http://gamedevgeek.com/tutorials/cal...ions-from-lua/
    et http://mdeverdelhan.developpez.com/t...lua/tutoriel1/

Discussions similaires

  1. [Newbie] Problème d'appel de script perl
    Par NoCoZ dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/02/2006, 17h43
  2. debutant= appel de script dans html
    Par sadkill dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2006, 13h17
  3. [Sqlplus ] Appel depuis script KSH
    Par kasiop dans le forum Oracle
    Réponses: 2
    Dernier message: 27/01/2006, 10h25
  4. Réponses: 3
    Dernier message: 16/10/2005, 13h43
  5. Réponses: 6
    Dernier message: 23/05/2005, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo