|
![]() |
Пред. тема | След. тема | ||
Форум Программирование под UNIX (Shell скрипты) | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"вопрос по LUA" | +/– | ![]() |
Сообщение от Andrey (??) on 14-Сен-12, 12:55 | ||
хочу перевести часть АИ (самописанной игрушки) на LUA, вопрос вот в чем у меня много игровых объектов описаны через enum. как с этим LUA работает? | ||
Ответить | Правка | Cообщить модератору |
Оглавление |
|
Сообщения по теме | [Сортировка по времени | RSS] |
1. "вопрос по LUA" | +/– | ![]() |
Сообщение от ANonymous on 16-Сен-12, 13:43 | ||
Общепринято енумы пробрасывать как строки (все строки интернятся, так что на стороне Луа в скорости потерь нет). Со стороны сей лучше их заранее положить в таблицу и сравнивать через lua_rawequal. Таблицу можно хранить в LUA_REGISTRY или вообще обойтись без нее, создав на каждый тип енума конвертирующее замыкание и сравнивать upvalue со входящим параметром строкой, или, если это число, то наоборот возвращать строку-upvalue. | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
![]() | ||
2. "вопрос по LUA" | +/– | ![]() |
Сообщение от ANonymous on 16-Сен-12, 14:04 | ||
Замыкание создается так: пушишь N строк, вызываешь lua_pushcclosure(L, N, conv_func). В conv_func в цикле от 1 до N: lua_pushvalue(L, lua_upvalueindex(n)), lua_rawequal(L, -1, -2), если совпали - оно, если нет, lua_pop(L, 1) и идем дальше. Если lua_type(L, 1) == LUA_TNUMBER, то просто lua_pushvalue(L, lua_upvalueindex(lua_toint(L, 1))), return 1 -- возвращаем строку по числу. Ну и проверки границ не забываем, Луа их не делает, можно попасть на сегфолт. | ||
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору |
![]() | ||
3. "вопрос по LUA" | +/– | ![]() |
Сообщение от Andrey (??) on 29-Сен-12, 19:05 | ||
> Замыкание создается так: пушишь N строк, вызываешь lua_pushcclosure(L, N, conv_func). | ||
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |