Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > Модули для BlitzMax

Ответ
 
Опции темы
Старый 09.03.2011, 13:43   #1
Черный крыс
 
Сообщений: n/a
API.Script + API.ScriptLua + OpenSource

Приветствую!

Вобсчем наконец дошли руки до легендарной ЛУА. =) Всем известно что в модуле BRL.MaxLua Марк как всегда поленился, и многих фишек в нем нет. Пришлось мне взятся за доработку... =))) В архиве два модуля API.Script - этот модуль является интерфейсным (справочным). И API.ScriptLua - это драйвер интерфейсного модуля реализующий его функционал при помощи скрипт-движка PUB.Lua, В него перенесен модуль BRL.MaxLua c некоторыми изменениями. Основные улучшения : 1) Возможность динамической догрузки/перегрузки чунков (порций кода). 2) Возможность загружать прекомпилированные байт-скрипты. 3) Возможность "опускания" аргументов вызываемых функций из скрипта. 4) Обьектно ориентированный интерфейс.

Модули пока что только тестируются, просьба сообщать о найденных багах.

ЗЫ Модули поставляются с полной русской справкой. установка : 1) Скомпилить модули. 2) Перекомпилить документацию. 3) Примеры прилагаются.
Вложения
Тип файла: zip api.mod.zip (20.5 Кб, 595 просмотров)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо за это полезное сообщение:
baton4ik (09.03.2011), moka (09.03.2011)
Старый 09.03.2011, 13:50   #2
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: API.Script + API.ScriptLua + OpenSource

Сообщение от Diablo1909 Посмотреть сообщение
2) Возможность загружать прекомпилированные байт-скрипты.
Разве этого нету в pub.lua?

3) Возможность "опускания" аргументов вызываемых функций из скрипта. 4) Обьектно ориентированный интерфейс.
Что за "опускание"? В чём выражается объектно-ориентированность интерфейса?
(Offline)
 
Ответить с цитированием
Старый 09.03.2011, 14:14   #3
Черный крыс
 
Сообщений: n/a
Ответ: API.Script + API.ScriptLua + OpenSource

Сообщение от baton4ik Посмотреть сообщение
Разве этого нету в pub.lua?



Что за "опускание"? В чём выражается объектно-ориентированность интерфейса?
Этого нету в BRL.MAXLua. Или же ты собрался в игровой движок юзать прямые функции LUA? тогда удачи!

'опускание аргументов' - это когда необязательно указывать аргумент вызываемой функции, в этом случае при числах подставится 0, при строках "", и при обьекте lua_nil.

OO-interface, мне ли это обьяснять? GO TO google->wikipedia
 
Ответить с цитированием
Старый 09.03.2011, 14:23   #4
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: API.Script + API.ScriptLua + OpenSource

Сообщение от Diablo1909 Посмотреть сообщение
Этого нету в BRL.MAXLua. Или же ты собрался в игровой движок юзать прямые функции LUA? тогда удачи!

'опускание аргументов' - это когда необязательно указывать аргумент вызываемой функции, в этом случае при числах подставится 0, при строках "", и при обьекте lua_nil.

OO-interface, мне ли это обьяснять? GO TO google->wikipedia
Я знаком с привязкой lua к bm и pub.lua является полнее BRL.MAXLua. Там уже есть часть введенных тобою в BRL.MAXLua функций. Возможность загружать прекомпилированные байт-скрипты, например. Про "опускание" понял, в pub.lua это, по-моему, тоже есть.
Насчёт интерфейса я имел в виду кое-что другое, ну да неважно.
(Offline)
 
Ответить с цитированием
Старый 09.03.2011, 14:27   #5
Черный крыс
 
Сообщений: n/a
Ответ: API.Script + API.ScriptLua + OpenSource

А какой БМакс? я делал на 1.39, таких фючер в МаксЛуа в этой версии не было...
 
Ответить с цитированием
Старый 09.03.2011, 14:30   #6
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: API.Script + API.ScriptLua + OpenSource

Тоже 1.39
Посмотри pub.lua
(Offline)
 
Ответить с цитированием
Старый 09.03.2011, 14:38   #7
Черный крыс
 
Сообщений: n/a
Ответ: API.Script + API.ScriptLua + OpenSource

понял к чему ты клонишь...

Я же думаю что при двиготеле-строении проще записать так :

script:TScript = LoadScript("script.lua")

script.Execute("Init")

чем так :

lua_loadstring(LoadText("Script.lua").ToCString())
lua_ref(LUA_STATE...,...)
...
бла...бла...бла

Это п во первых.
Во вторых, в случае какой либо ошибки - ловить ее заипешся.
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (09.03.2011)
Старый 09.03.2011, 14:47   #8
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: API.Script + API.ScriptLua + OpenSource

Сложность запуска - мелочи жизни, я считаю. К тому же ты всё усложнил:
Global LuaState:Byte Ptr
LuaState = luaL_newstate()
luaL_openlibs(LuaState)
lua_dofile(LuaState, path)

Отлов ошибок - это да, плюс.
(Offline)
 
Ответить с цитированием
Старый 09.03.2011, 14:54   #9
Черный крыс
 
Сообщений: n/a
Ответ: API.Script + API.ScriptLua + OpenSource

А если файл скрипта лежит в PAK-архиве? То твой метод не подойдет.
 
Ответить с цитированием
Старый 09.03.2011, 15:05   #10
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: API.Script + API.ScriptLua + OpenSource

А предложенный тобой подойдёт. Никаких проблем
(Offline)
 
Ответить с цитированием
Старый 09.03.2011, 15:07   #11
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: API.Script + API.ScriptLua + OpenSource

Сообщение от baton4ik Посмотреть сообщение
Сложность запуска - мелочи жизни, я считаю. ....
Не думаю что мелочи, как раз удобство и лаконичность кода - залог организованности кода и его читабельности, что улучшает производительность разработки и удобство поддержки в будущем.
(Offline)
 
Ответить с цитированием
Старый 09.03.2011, 15:11   #12
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: API.Script + API.ScriptLua + OpenSource

Сообщение от MoKa Посмотреть сообщение
Не думаю что мелочи, как раз удобство и лаконичность кода - залог организованности кода и его читабельности, что улучшает производительность разработки и удобство поддержки в будущем.
Согласен, однако тут речь идёт о небольшой разнице.
Global LuaState:Byte Ptr
LuaState = luaL_newstate()
luaL_openlibs(LuaState)
lua_dofile(LuaState, path)
Разве сложно?
(Offline)
 
Ответить с цитированием
Старый 09.03.2011, 15:20   #13
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: API.Script + API.ScriptLua + OpenSource

Сообщение от baton4ik Посмотреть сообщение
Согласен, однако тут речь идёт о небольшой разнице.
Global LuaState:Byte Ptr
LuaState = luaL_newstate()
luaL_openlibs(LuaState)
lua_dofile(LuaState, path)
Разве сложно?
Не читабелен вообще.
Для меня так:
Объявляем переменную LuaState с неопределённой кучей данных внутри.
Назначаем новый объект (состояния?).
Открываем библиотеки, зачем там стейты, хз.
Как понял, выполняет фаил, по пути, хз что с состоянием.

Тут же:
script:TScript = LoadScript("script.lua")
script.Execute("Init")
Всё эллементарно просто. Грузится скрипт из файла, и запускается функция Init.
(Offline)
 
Ответить с цитированием
Старый 09.03.2011, 15:28   #14
Черный крыс
 
Сообщений: n/a
Ответ: API.Script + API.ScriptLua + OpenSource

2baton4ik сложности появятся когда кода будет побольше, чем 4 строчки.
 
Ответить с цитированием
Старый 09.03.2011, 15:33   #15
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: API.Script + API.ScriptLua + OpenSource

2MoKa, для меня читабелен. Ну да ладно, это уже Марка ругать надо.
2Diablo1909, http://forum.boolean.name/showthread.php?t=14085
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 08:04.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com