Ычан: [d | b / bro / hr / l / m / mu / o / s / tran / tu / tv / vg / x | a / aa / c / fi / jp / rm / tan / to / vn]
[Назад]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 13038)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, WEBP, XCF, ZIP размером до 5120 кБ.
  • Ныне 3657 unique user posts. Посмотреть каталог
  • Предельное количество бампов нити: 500
lua-beginner-guide.jpg - (77.99KB, 638×509)
13038
No. 13038  
Чет мне взбрело в голову накатать свой крутой двиган-убийцу этого, кто он там... Юнити, я уже нахерачил полмегабайта классов на С++ и теперь в состоянии вывести на экран пиксель, теперь, чтобы написать все остальное мне в двигле нужен скриптовый язык. Ничтоже сумняшеся я начал было как обычно ковырять свой собственный парсер с объектами и коллбэками, но что-то меня остановило, и я подумал, что плодить свои диалекты недоязыков это too mainstream и не подходит к моей клетчатой рубашке и бумажному стаканчику от латтэ из старбакса который я бережно храню, так как в моих пердях оный является лютым дефицитом. Посему я решил впендюрить в свой шедевр инженерной мысли LUA, так как это олдскульно, восьмибитно и пиксельно.
Мануал на сайте я читаю, но он в основном написан про сам язык, без отсылки в best practices или хоть каким-нибудь пошаговым туториалам типа "пишем свой клиент к world of warkraft за 15 простых уроков". Это стремно. Посему вопрос - где можно почитать про использование этого поделия в других поделиях, а то там в мануале в первых двух страницах нет подзаголовка "если вы пишете прогу на объектах с использованием SDL2 и хотите использовать наш парсер для всего кроме вывода на экран пикселей, то вам сюда" (и что-то мне подсказывает, что его вообще нет), а дальше я не читал, так как меня выгнали из антикафе, а какой я нахрен инди-разработчик, если я не в антикафе сижу?
No. 13039  
Ltrd4rKP6Yc.jpg - (496.80KB, 2048×1536)
13039
>>13038
>LUA
>олдскульно, восьмибитно и пиксельно.
шта

Есть официальная Programming in Lua (PiL). Мне, правда, абсолютно не понравилась, да и ничего нового не узнал.
No. 13040  
>>13039
>шта

Луа довольно говно мамонта.

>Есть официальная Programming in Lua (PiL)

Там про сам язык. Причем слишком подробно, камудто кто-то собирается на луе писать драйвера. А нужен туториал\руководство о том как делать "правильно" в конкретной задаче. Case-studies, так сказать. Типа вот хотите вы замутить гуи к своему прожекту, давайте создадим программу на Це, подключим такие и такие либы так то сканпилем и прочее. Завместо этого полотра абзаца про то, что мол можно забиндеть функцию и она будет вызываться из вашего скрипта при помощи нашего интерпритатора. Как будто, блядь, я сам не могу составить таблицу биндингов и парсить аргументы.
Я был весьма удивлен, когда не нашел на сайте библиотечки примеров того как я могу ее использовать в своей программе, зато вместо этого какие-то невнятные описания операторов, мутные загоны про то, какой луа крутой язык и как на нем можно написать свою ось. Это вызывает некий когнитивный диссонанс.
No. 13043  
https://www.google.com/search?q=embedding+lua
Не благодари.
No. 13739  
44459168_p0.png - (608.94KB, 1077×1693)
13739
Я короч поковырял ЛУУ и увидел следующую тему - С++ интегрируется с ЛУА очень хуево, так как обратный биндинг (т.е. возможность вызвать из LUA скрипта метод объекта) отсутствует.
Все "обертки" какие я нашел по большому счету неюзабельны. Ну, всмысле того, что С++ превращается с помощью этих "биндингов" в С. Вся "объектность" идет по пизде.
No. 13740  
>так как обратный биндинг (т.е. возможность вызвать из LUA скрипта метод объекта) отсутствует
Почему?
No. 13741  
>>13740
Для биндинга "из луа" требуется чтобы функция имела статический адрес, для метода объекта такая фича не работает (ну, как не работает - при ее использовании он превращается из метода в статическую функцию, с потерей всех "объектных" плюшек, в частности указатель this в ней становится недоступен, так как функция по факту выпихивается из объекта в глобальное адресное пространство исполняемого файла).
Я сделал кривой воркэраунд данной проблемы путем создания специальной функции-обертки, внутри которой вызвается метод объекта (сам объект тоже пришлось вынести в глобальную область видимости).
No. 13742  
>>13741
А мог бы просто протащить свой this через луа код. Но вообще говоря, объектодети должны страдать.
No. 13744  
>>13742
>протащить свой this через луа код

Пиздец извращение. Проще всего было бы все на С писать изначально. Но это не труъ.
No. 13746  
>>13744
>Пиздец извращение.
Ну да. Стандартное ООП извращение.
No. 13748  
>с потерей всех "объектных" плюшек
Я не понял, что хочет оп. Какие вообще объектные си++ плюшки могут быть после конпеляции? Ну вот даже если сам луа в расчёт не брать. Как я понимаю, интерпретатор же просто берёт и вызывает функцию, имплементированную в бинарнике, без всяких излишеств? Все данные, которые нужно уже представить в виде объектов в скриптовом файле, ты уже делаешь непосредственно в скриптовом языке, ведь так? А все плюшки ооп в си++ используются только при непосредственном написании кода на си++, нэ? Ведь так логично?

*непрограммаст мимо пробегал*
No. 13836  
>>13748
Я тебе больше скажу - первые поделия Страуструпа вообще транслировали код этого языка в код на чистом Си, который затем отлаживался и компилировался.
No. 13864  
>>13836
>Страус-трупа
Удалить сообщение []
Пароль  
[Mod]