Попытка индексировать числовое значение. C ++ и Lua

0

Я пытаюсь написать своего рода движок, который использует Lua в качестве языка скрипта. Это дает мне ошибку в названии.

#define el Engine::lua
int vecCreate(lua_State* vm) {
    int argc = el.argc();
    el.createTable();
    if (argc == 0) {
        el.tableAddd("x", 0.0);
        el.tableAddd("y", 0.0);
    } else if (argc == 2) {
        el.tableAddd("x", el.argd());
        el.tableAddd("y", el.argd());
    }
    return 1;
}
void Lua::createTable() {
    lua_createtable(vm, 2, 0);
    }
void Lua::tableAddd(string key, double val) {
    lua_pushstring(vm, key.c_str());
    lua_pushnumber(vm, val);
    lua_settable(vm, -3);
}
double Lua::argd() {
    double res = lua_tonumber(vm, 1);
    lua_pop(vm, 1);
    return res;
}

Я делаю это неправильно? Весь скрипт

function draw()
    drawColor(100, 100, 100)
    drawPoly(vecNew(10, 10), vecNew(10, 100), vecNew(100, 100), vecNew(100, 10))
end

Да, я уверен, что проблема заключается в функции рисования

  • 0
    Просто любопытно, есть ли причина, по которой вы не используете luabind, SWIG или lua-icxx? Я использовал последний вместе с SWIG в той же программе, и это сэкономило мне кучу времени.
  • 1
    Да, причина в усилении Луабинда. И полная лень для всех них. Я не хочу учиться снова
Теги:
lua

1 ответ

2
Лучший ответ

Nevermind, я только что нажал таблицу в стеке в vecCreate прежде чем получить аргументы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню