[Logo]
LUA Форум
  [Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Как лучше связать C++ переменную и Lua-переменную?  XML
Индекс форума » LUA: Общие вопросы
Автор Сообщение
Strijar
ГУРУ

Зарегистрирован: 08/02/2008 21:28:09
Сообщений: 223
От: СПб
Оффлайн

DarkKnight wrote:зато мне не понятно))тема схожая,поэтому решил написать тут,а не заводить новую.
вот тут сказали что мгновенное изменение данных можно сделать через __index.как именно это сделать?вот для наглядности скрипт:



При моем подходе получается так:



Как - смотри по ссылке которую давал выше (про пользовательский интерфейс)
Но это немного не то, тут __index не нужен. Он был бы нужен например если:


Это сообщение было редактировано 2 раз. Последнее обновление произошло в 04/05/2008 09:08:41


Лучше быть белым волком, чем серым человеком.
[WWW]
Strijar
ГУРУ

Зарегистрирован: 08/02/2008 21:28:09
Сообщений: 223
От: СПб
Оффлайн

DarkKnight wrote:это потмоучто переменная cube обновляется только после выполнения скрипта.как сделать обновление переменной немедленно?


Именно переменной? - видимо никак. Но если она в таблице:

objects.cube = NewCube(...)

То можно словить изменения в таблице objects. Но твой случай какой-то вообще не понятный - все изменения вступают в силу сразу. Другое дело что код на Си не всегда может получить их, потому как выполнение не параллельное. Вот потому то и надо налаживать взоимодействие между Lua машиной и кодом на Си

Лучше быть белым волком, чем серым человеком.
[WWW]
smz
ГУРУ

Зарегистрирован: 14/03/2008 13:23:00
Сообщений: 245
Оффлайн

DarkKnight wrote:было бы еще неплохо узнавать cube == NULL ?и тогда создавать объект,иначе не создавать,потмоучто этот скрипт в цикле работает.но кроме как отдельными функциями,которые после выполнения скрипта работают:..это сделать можно?т.е. в теле функции создания куба.буду оч признателен за помощь)

А что если:
DarkKnight
Новичок

Зарегистрирован: 25/04/2008 19:38:41
Сообщений: 26
Оффлайн

это прокатит.но это не то)темболее мне ведь надо чтобы изменения сразу вступали в силу.а эта проверка выполнится уже после выполения всего скрипта,на сколкьо я понимаю.мне надо проверять это в функции CreateBox().и я наверно не правильно выразился.поэтому вы меня не правильно поняли.после выполнения каждой команды в скрипте изменения происходят немедленно,и куб собственно создается тоже(видимо).Проблема в том,что в скрипте самом переменная cube остается == 0,из-за этого все последующие команды не работают.
В общем вот весь код.смотреть файлы LUA_export.h и TV3DScene.cpp(с комента Run LUA до комента Input)
 Имя файла TV3D_LUA.rar [Disk] Загрузить
 Описание sources
 Размер файла 2662 Kbytes
 Скачано:  9 раз

Это сообщение было редактировано 3 раз. Последнее обновление произошло в 05/05/2008 17:39:33


Нет документации на русском?Напиши сам! (с)Сайт "Lua в России" (lua.ru)
smz
ГУРУ

Зарегистрирован: 14/03/2008 13:23:00
Сообщений: 245
Оффлайн

Скачал, посмотрел... (комментировать качество кода не буду).
Что касается конкретно "проблемы" (в кавычках, потому что проблемы-то никакой нет):
Проблема в том,что в скрипте самом переменная cube остается == 0,из-за этого все последующие команды не работают.

Переменная остаётся 0, потому что ф-ция l_CreateBox вернула в Lua число 0. Так в чём проблема для скрипта проверить возвращаемое значение, прежде, чем вызывать последующие функции?
А вот почему l_CreateBox возвращает в Lua 0 -- разбирайтесь.
DarkKnight
Новичок

Зарегистрирован: 25/04/2008 19:38:41
Сообщений: 26
Оффлайн

приверить значение cube не проблема.качество кода там совсем плохое.я это знаю.этот проект я полгода назад писал и на скорую руку.
спс,хз почему даже return out; возвращает что-то != адрессу объекта в памяти,буду разбираться...

Это сообщение было редактировано 2 раз. Последнее обновление произошло в 05/05/2008 21:31:07


Нет документации на русском?Напиши сам! (с)Сайт "Lua в России" (lua.ru)
smz
ГУРУ

Зарегистрирован: 14/03/2008 13:23:00
Сообщений: 245
Оффлайн

DarkKnight wrote:только почему она возвращает 0 если написать return out; воистину хз.

Боже упаси! Ф-ция l_CreateBox в порядке, а вот ф-ция CreateBox (в C++) - не совсем.
И вообще, методом тыка такие вещи не делаются. Учите Lua. Учите C++.
DarkKnight
Новичок

Зарегистрирован: 25/04/2008 19:38:41
Сообщений: 26
Оффлайн

smz wrote:
А вот почему l_CreateBox возвращает в Lua 0 -- разбирайтесь.


smz wrote:
Боже упаси! Ф-ция l_CreateBox в порядке, а вот ф-ция CreateBox (в C++) - не совсем.


да,да,сорри)исправлю

Это сообщение было редактировано 3 раз. Последнее обновление произошло в 05/05/2008 22:30:49


Нет документации на русском?Напиши сам! (с)Сайт "Lua в России" (lua.ru)
smz
ГУРУ

Зарегистрирован: 14/03/2008 13:23:00
Сообщений: 245
Оффлайн

наговаривать не нужно.

То, что я посоветовал вам учить Lua и C++, не было критикой, - это был однозначный вывод после просмотра вашего кода. Ничего обидного в этом совете нет, "Москва не сразу строилась".
DarkKnight
Новичок

Зарегистрирован: 25/04/2008 19:38:41
Сообщений: 26
Оффлайн

исправлю))у меня впринципе было правильно в лоадмеш,прсото хотел сделать присваиванием.

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/05/2008 22:34:24


Нет документации на русском?Напиши сам! (с)Сайт "Lua в России" (lua.ru)
xVekx
Новичок

Зарегистрирован: 04/06/2008 20:37:52
Сообщений: 6
Оффлайн

народ вопросик вот на с++ есть функция lua 4.0.1

в Lua


Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/06/2008 01:56:56

smz
ГУРУ

Зарегистрирован: 14/03/2008 13:23:00
Сообщений: 245
Оффлайн

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 04/06/2008 22:29:31

xVekx
Новичок

Зарегистрирован: 04/06/2008 20:37:52
Сообщений: 6
Оффлайн

спасибо!!!!!!!

а вот теперь такой вопрос
в *.Lua

в с++
функция

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/06/2008 01:57:28

smz
ГУРУ

Зарегистрирован: 14/03/2008 13:23:00
Сообщений: 245
Оффлайн

xVekx wrote:
int connect(lua_State* luaVM)
{
//надо поймать значение string и int
}


А вообще-то положено сначала читать справочник, в котором всё это описано.

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 04/06/2008 23:45:54

B4rr4cuda
Постоянный посетитель
[Avatar]

Зарегистрирован: 14/01/2008 14:58:13
Сообщений: 48
Оффлайн

А вообще-то положено сначала читать справочник, в котором всё это описано.

...И пользоваться тегом [code] , при написании сообщения содержащего код.

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/06/2008 02:01:12

 
Индекс форума » LUA: Общие вопросы
Перейти:   
Powered by JForum 2.1.8 © JForum Team