[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]

Файл: lua-beginner-guide.jpg -(77 KB, 638x509, lua-beginner-guide.jpg)
77 No.13038  
Чет мне взбрело в голову накатать свой крутой двиган-убийцу этого, кто он там... Юнити, я уже нахерачил полмегабайта классов на С++ и теперь в состоянии вывести на экран пиксель, теперь, чтобы написать все остальное мне в двигле нужен скриптовый язык. Ничтоже сумняшеся я начал было как обычно ковырять свой собственный парсер с объектами и коллбэками, но что-то меня остановило, и я подумал, что плодить свои диалекты недоязыков это too mainstream и не подходит к моей клетчатой рубашке и бумажному стаканчику от латтэ из старбакса который я бережно храню, так как в моих пердях оный является лютым дефицитом. Посему я решил впендюрить в свой шедевр инженерной мысли LUA, так как это олдскульно, восьмибитно и пиксельно.
Мануал на сайте я читаю, но он в основном написан про сам язык, без отсылки в best practices или хоть каким-нибудь пошаговым туториалам типа "пишем свой клиент к world of warkraft за 15 простых уроков". Это стремно. Посему вопрос - где можно почитать про использование этого поделия в других поделиях, а то там в мануале в первых двух страницах нет подзаголовка "если вы пишете прогу на объектах с использованием SDL2 и хотите использовать наш парсер для всего кроме вывода на экран пикселей, то вам сюда" (и что-то мне подсказывает, что его вообще нет), а дальше я не читал, так как меня выгнали из антикафе, а какой я нахрен инди-разработчик, если я не в антикафе сижу?
>> No.13039  
Файл: Ltrd4rKP6Yc.jpg -(496 KB, 2048x1536, Ltrd4rKP6Yc.jpg)
496
>>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 KB, 1077x1693, 44459168_p0.png)
608
Я короч поковырял ЛУУ и увидел следующую тему - С++ интегрируется с ЛУА очень хуево, так как обратный биндинг (т.е. возможность вызвать из LUA скрипта метод объекта) отсутствует.
Все "обертки" какие я нашел по большому счету неюзабельны. Ну, всмысле того, что С++ превращается с помощью этих "биндингов" в С. Вся "объектность" идет по пизде.
>> No.13740  
>так как обратный биндинг (т.е. возможность вызвать из LUA скрипта метод объекта) отсутствует
Почему?
>> No.13741  
>>13740
Для биндинга "из луа" требуется чтобы функция имела статический адрес, для метода объекта такая фича не работает (ну, как не работает - при ее использовании он превращается из метода в статическую функцию, с потерей всех "объектных" плюшек, в частности указатель this в ней становится недоступен, так как функция по факту выпихивается из объекта в глобальное адресное пространство исполняемого файла).
Я сделал кривой воркэраунд данной проблемы путем создания специальной функции-обертки, внутри которой вызвается метод объекта (сам объект тоже пришлось вынести в глобальную область видимости).
>> No.13742  
>>13741
А мог бы просто протащить свой this через луа код. Но вообще говоря, объектодети должны страдать.
>> No.13744  
>>13742
>протащить свой this через луа код

Пиздец извращение. Проще всего было бы все на С писать изначально. Но это не труъ.
>> No.13746  
>>13744
>Пиздец извращение.
Ну да. Стандартное ООП извращение.
>> No.13748  
Файл: AKBINGO! episode 49 eng sub - 2009_09_02_mp4_20160.jpg -(110 KB, 927x785, AKBINGO! episode 49 eng sub - 2009_09_02_mp4_20160.jpg)
110
>с потерей всех "объектных" плюшек
Я не понял, что хочет оп. Какие вообще объектные си++ плюшки могут быть после конпеляции? Ну вот даже если сам луа в расчёт не брать. Как я понимаю, интерпретатор же просто берёт и вызывает функцию, имплементированную в бинарнике, без всяких излишеств? Все данные, которые нужно уже представить в виде объектов в скриптовом файле, ты уже делаешь непосредственно в скриптовом языке, ведь так? А все плюшки ооп в си++ используются только при непосредственном написании кода на си++, нэ? Ведь так логично?

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



[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]