2D-Array von C++ an Lua (und zurück) übergeben



  • Guten Abend,
    Ich stoße hier gerade auf ein Problem mit Lua, Google liefert dazu jedoch
    höchst unterschiedliche Implementierungen zur Übergabe von normalen Arrays,
    zur Übergabe von 2D finde ich garnichts..

    Woraus ich mir jetzt folgende beiden Funktionen gebastelt habe die den Array
    auf den LuaStack pushen bzw. wieder poppen. (der Array liegt in folgender
    Form vor: int **Field[x][y])

    void GameField::Push(lua_State *L) {
    
            lua_newtable(L);
            for(int i=0; i < x; i++) {
                    lua_newtable(L);
                    for(int j=0; j < y; j++) {
                            lua_pushnumber(L,Field[i][j]);  //Value
                            lua_rawseti(L, -2, j);  //Key 
                    }
            }
    
    }
    
    void GameField::Pop(lua_State *L) {
    
            lua_gettable(L,-1);
            for(int i = 0; i < x; i++) {
                    lua_gettable(L,-1);
                    for(int j=0; j < y; j++) {
                            lua_rawgeti(L,1,j);
                            Field[i][j] = lua_tonumber(L,-1);
                    }
                    lua_pop(L,1);
    
            }
    
    }
    

    Mir ist eigentlich klar dass das falscher Code ist, da ich beim programmieren
    mehr oder weniger geraten habe, und mich mit lua erst seit 2 Tagen beschäftige.
    Entsprechend produziert der Code nur Müll (und Fehler).

    Ich hoffe jemand von euch kann mir einen kleinen BeispielCode posten wie das Ganze zu lösen ist.
    Bzw. die richtigen Funktionen die ich benutzten muss zu posten reicht auch schon (hoff ich 🕶 ).



  • *PUSH*

    Hat keiner einen Tipp für mich? 😞


Anmelden zum Antworten