Сообщения на форуме пользователя Andrey (161 стр.)
Наложение таблицы(таблиц) Lua на структуру(массив структур) C++. | 25 окт. 2006 | 17:05 | #6 |
---|
Дмитрий Ясенев
>честно говоря, не понял, почему поздно внедрять luabind? он никому мешать не будет, его можно использовать параллельно с >вашим LuaScriptManager, удобен для экспорта в Луа С++ классов, енумов и пр.
все вы меня все уговорили :) мне уже несколько раз советовали участники форума. Все сегодня же я собрал luabind и начал ковыряться, расширю класс LuaScriptManager.
>Идея синхронизировать луа таблицу с сишными данными ИМХО не очень удачная, я бы вообще задачу по-другому ставил. >Проэкпортите свою стрктурку через luabind или через напрямую из Луа (используя userdata с метатаблицами) и используйте её >напрямую в Луа, ничего никуда перегонять не нужно, это способ, который подразумевается создателями Луа для экпорта в >скрипт пользовательских типов.
Я так понимаю можно уже не рабоатать со стеком Lua ? ничего класть на стек и назад передавать не надо? так как у нас есть указатель на массив данных всех объектов.
А вот можно поподробней c примером кода по UserData и Метатаблицы.
>честно говоря, не понял, почему поздно внедрять luabind? он никому мешать не будет, его можно использовать параллельно с >вашим LuaScriptManager, удобен для экспорта в Луа С++ классов, енумов и пр.
все вы меня все уговорили :) мне уже несколько раз советовали участники форума. Все сегодня же я собрал luabind и начал ковыряться, расширю класс LuaScriptManager.
>Идея синхронизировать луа таблицу с сишными данными ИМХО не очень удачная, я бы вообще задачу по-другому ставил. >Проэкпортите свою стрктурку через luabind или через напрямую из Луа (используя userdata с метатаблицами) и используйте её >напрямую в Луа, ничего никуда перегонять не нужно, это способ, который подразумевается создателями Луа для экпорта в >скрипт пользовательских типов.
Я так понимаю можно уже не рабоатать со стеком Lua ? ничего класть на стек и назад передавать не надо? так как у нас есть указатель на массив данных всех объектов.
А вот можно поподробней c примером кода по UserData и Метатаблицы.
Наложение таблицы(таблиц) Lua на структуру(массив структур) C++. | 25 окт. 2006 | 16:17 | #4 |
---|
Lion007
Именно так!!!
это нужно срочно :(
Именно так!!!
это нужно срочно :(
сортировка по материалам: критерии | 25 окт. 2006 | 14:42 | #13 |
---|
Zemedelec
>Переключение vs и типа вертекс декларации дорого стоит, когда нагружен GPU.
>Переключение ps дорого стоит на NV, как и setpixelconstant.
>Но имхо vs дороже.
хм... как это определяеться замером времени? собственым опытом или опытным путем?
>Переключение vs и типа вертекс декларации дорого стоит, когда нагружен GPU.
>Переключение ps дорого стоит на NV, как и setpixelconstant.
>Но имхо vs дороже.
хм... как это определяеться замером времени? собственым опытом или опытным путем?
Наложение таблицы(таблиц) Lua на структуру(массив структур) C++. | 25 окт. 2006 | 13:13 | #2 |
---|
the_siv
lua_bind внедрять уже поздно, ручками написан LuaScriptManager который напрямую работаетс Lua API и я вляеться местами простым враппером(не убираеться на всякий случай), а местами обладает полноценной функциональностью и удобвством .
>А как ты хочешь создавать объекты. Что-то вроде: создаёшь с программе - создаётся соответствующий в скрипте, создаёшь в >скрипте - создаётся в программе, убиваешь один любой - умирают оба.
при загрузке уровня создаются объекты одинаковых типов для каждого объекта есть некая структура данных имеющаая все бе массив перменных связанный по указателю с перменными на C++ и скриптовая функция индивидуальная для каждой группы объектов.
неудобство в том что при обновлении 1-го объекта нельзя может получить доступ к другим объектам потому что стек кидаються только переменные текущего объекта. т.е. более сложное поведение не реализуешь.
для всех объетов выделен пул и при смерте просто изменяеться состояние.
>Или это всё хочешь делать в ручную?
что-то не понял.
lua_bind внедрять уже поздно, ручками написан LuaScriptManager который напрямую работаетс Lua API и я вляеться местами простым враппером(не убираеться на всякий случай), а местами обладает полноценной функциональностью и удобвством .
>А как ты хочешь создавать объекты. Что-то вроде: создаёшь с программе - создаётся соответствующий в скрипте, создаёшь в >скрипте - создаётся в программе, убиваешь один любой - умирают оба.
при загрузке уровня создаются объекты одинаковых типов для каждого объекта есть некая структура данных имеющаая все бе массив перменных связанный по указателю с перменными на C++ и скриптовая функция индивидуальная для каждой группы объектов.
неудобство в том что при обновлении 1-го объекта нельзя может получить доступ к другим объектам потому что стек кидаються только переменные текущего объекта. т.е. более сложное поведение не реализуешь.
для всех объетов выделен пул и при смерте просто изменяеться состояние.
>Или это всё хочешь делать в ручную?
что-то не понял.
сортировка по материалам: критерии | 25 окт. 2006 | 12:34 | #8 |
---|
Подписываюсь...
Наложение таблицы(таблиц) Lua на структуру(массив структур) C++. | 25 окт. 2006 | 12:00 | #0 |
---|
привет всем!!!
Итак есть игровой объект.
все переменные занесены в структуру C++
примерно такого плана:
Теперь бы неплохо отобразить каждую структуру игрового объекта в такую таблицу(в елемент массива таблиц).
Я так думаю что нужно пердавать указатель с помощью lua_pushlightuserdata но нужно делать еще что-то с Lua API.
возможно еще нужно вызывать функцию C++ из Lua которая будет класть на стек Lua каждый член данных таблицы C++.
В итоге я хочу что-бы можно было менять данные независимо друг от друга из C++ и из Lua скрипта.
Скажите как это сделать?
Итак есть игровой объект.
все переменные занесены в структуру C++
примерно такого плана:
class GameObject { // игровой объект private: struct GameObjectData { // структура описывающая данные игрового объекта ... bool isVisible; // виден ли объект int curState; // текущее состояне объекита ... }; };
для такого объекта пишеться скрипт который меняет все его переменнные
вот так идет инициализация данныв в ксрипте
-- таблица данных игровых объектов GameObjectData = {}; -- функция инициализации таблицы function Init() -- цикл по числу игровых объектов for i=1, numGameObjects do -- добавляем в таблицу начальные данные table.insert( GameObjectData, { isVisible = false, curState = 0 } ); end; end;
Я так думаю что нужно пердавать указатель с помощью lua_pushlightuserdata но нужно делать еще что-то с Lua API.
возможно еще нужно вызывать функцию C++ из Lua которая будет класть на стек Lua каждый член данных таблицы C++.
В итоге я хочу что-бы можно было менять данные независимо друг от друга из C++ и из Lua скрипта.
Скажите как это сделать?
cal3d и озвучка. | 25 окт. 2006 | 11:35 | #7 |
---|
zebrabug
ушло
ушло
OpenIL | 24 окт. 2006 | 20:05 | #2 |
---|
3dfox
хм вопрос конечно уже требует не только основ бибилиотеки, но что на это говорит документация?
хм вопрос конечно уже требует не только основ бибилиотеки, но что на это говорит документация?
cal3d и озвучка. | 24 окт. 2006 | 18:02 | #5 |
---|
zebrabug
я говорю могу прислать...
я говорю могу прислать...
cal3d и озвучка. | 24 окт. 2006 | 17:29 | #3 |
---|
zebrabug
>неа не нашел. Я что то не до читал?
по ходу дела нет тебе дать это?
если не надо то смотри во тут:
cal3d-0.11.0\docs\modeling
>неа не нашел. Я что то не до читал?
по ходу дела нет тебе дать это?
если не надо то смотри во тут:
cal3d-0.11.0\docs\modeling
Как сделать проверку что куб попадает в камеру (Frustum) | 24 окт. 2006 | 16:13 | #11 |
---|
BUzer,
ILY
>http://www.ce.chalmers.se/~uffe/vfc_bbox.pdf
угу есть такое у меня, про битовые флаги я знал только вот еще не доходил до этого а переносить непонятный хотя-бы в общих чертах код не хотелось.
спасибо буду пробывать...
ILY
>http://www.ce.chalmers.se/~uffe/vfc_bbox.pdf
угу есть такое у меня, про битовые флаги я знал только вот еще не доходил до этого а переносить непонятный хотя-бы в общих чертах код не хотелось.
спасибо буду пробывать...
cal3d и озвучка. | 24 окт. 2006 | 16:09 | #1 |
---|
zebrabug
>но вообще был бы рад любой инфе о подобном экспорте.
а в Cal3D SDK разве нет подробностей?
>но вообще был бы рад любой инфе о подобном экспорте.
а в Cal3D SDK разве нет подробностей?
Как сделать проверку что куб попадает в камеру (Frustum) | 24 окт. 2006 | 13:18 | #8 |
---|
stim24
BUzer
хм можешь подусказать как тут можно прооптимизировать?
INLINE bool BoxInFrustum(const Math3D::Vector3D& center, const Math3D::Vector3D& size) const { static float xSize; static float x_Size; static float ySize; static float y_Size; static float zSize; static float z_Size; xSize = center.x + size.x; x_Size = center.x - size.x; ySize = center.y + size.y; y_Size = center.y - size.y; zSize = center.z + size.z; z_Size = center.z - size.z; for(int i = 0; i < 6; i++ ) { if (planes[i].classifyPoint(x_Size, y_Size, z_Size) != Math3D::Plane::BACK_PLANE) { continue; } if (planes[i].classifyPoint(xSize, y_Size, z_Size) != Math3D::Plane::BACK_PLANE) { continue; } if (planes[i].classifyPoint(x_Size, ySize, z_Size) != Math3D::Plane::BACK_PLANE) { continue; } if (planes[i].classifyPoint(xSize, y_Size, z_Size) != Math3D::Plane::BACK_PLANE) { continue; } if (planes[i].classifyPoint(xSize, ySize, z_Size) != Math3D::Plane::BACK_PLANE) { continue; } if (planes[i].classifyPoint(x_Size, y_Size, zSize) != Math3D::Plane::BACK_PLANE) { continue; } if (planes[i].classifyPoint(xSize, y_Size, zSize) != Math3D::Plane::BACK_PLANE) { continue; } if (planes[i].classifyPoint(x_Size, ySize, zSize) != Math3D::Plane::BACK_PLANE) { continue; } if (planes[i].classifyPoint(xSize, ySize, zSize) != Math3D::Plane::BACK_PLANE) { continue; } // If we get here, it isn't in the frustum return false; } return true; } |
хм можешь подусказать как тут можно прооптимизировать?
Ну подскажите как подключить STLPort!!! | 24 окт. 2006 | 11:58 | #9 |
---|
SKoder
Итак я избавился от этого
но появидлись ошибки линковки вот некоторые из них: и еще много других ошибок...
попробывал поставить макрос
и указать нужную статическую бибилиотеку. Тестировал сборку на простом проекте все равно не собирваеться...
что нужно сделать?
Итак я избавился от этого
но появидлись ошибки линковки вот некоторые из них: и еще много других ошибок...
попробывал поставить макрос
#define _STLP_DONT_USE_AUTO_LINK 1
что нужно сделать?
Ну подскажите как подключить STLPort!!! | 24 окт. 2006 | 10:17 | #8 |
---|
SKoder
ну а что нибудь посерьезней можешь посоветовать?
неужели ты думаешь я это не пробывал?
ну а что нибудь посерьезней можешь посоветовать?
неужели ты думаешь я это не пробывал?