@ProLua

Страница 109 из 307
Group Butler [beta]
12.07.2017
03:18:31
Добро пожаловать в чат pro.lua, Dart Kane! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Dart Kane
12.07.2017
03:19:30
Всем привет

Все ещё спят?

Тогда позже зайду)

Google
Group Butler [beta]
12.07.2017
06:40:02
Добро пожаловать в чат pro.lua, Mikhail! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Добро пожаловать в чат pro.lua, Владислав! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Добро пожаловать в чат pro.lua, Mikhail! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Tverd
12.07.2017
10:00:55
Парни, а кто-нить делал на луаджите демона? со всей фигней, перехват stdin stdout

Alexey
12.07.2017
10:15:09
Я на Lua делал.делаю Windows Services :)

Tverd
12.07.2017
10:21:04
Это круто. Но мне бы юних ) Правда нашел кое-что, буду ковырять

Mons
12.07.2017
21:04:37
напилил либу для работы с бинарными данными https://github.com/moonlibs/bin буду признателен за критику и предложения пример реального использования можно посмотреть тут: https://github.com/moonlibs/connection-scribe/blob/master/connection/scribe.lua

Snusmumriken
12.07.2017
23:56:41
Кстати отлично

Group Butler [beta]
13.07.2017
09:18:46
Добро пожаловать в чат pro.lua, Skonix! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Mons
13.07.2017
11:02:00
а чего 128битных be/le конвертеров нету? :)
хм, никогда не было нужно сделаю, но работать будет только с ffi'ными uint128_t/int128_t (ибо такой размерности нет даже в луаджите)

Snusmumriken
15.07.2017
03:30:29
Чуть балуюсь с openresty, накатал шаблонизатор в 45 строчек.



Google
Snusmumriken
15.07.2017
03:32:27
Хотя можно вместо кучи вызовов, дёргать метод :add(...) Ну, суть более-менее понятна, думаю. А то задолбался с тем, что любой мало-мальски сложный шаблон требует жаваскриптов и прочей лабуды, замена контента тоже требует жаваскриптов и всё такое. И шаблонизаторы тащат. Надо же хоть когда-то веб осваивать, пусть даже велосипедами )) UPD: Допилил шаблонизатор на одиночные теги (как теги типа <br>, так и проперти в типа <a href="image.png" download>), Запилил загрузчик файлов, роутер ajax-запросов. Это действительно забавно. Осталось подрубить БД и развлекаться.



Vadim
15.07.2017
11:54:41
я

только я не костыляю шаблонизатор

ибо итак уже пучок есть

Azoyan
15.07.2017
12:23:45
Парни, можно в луа прокинуть по ссылке что-то?

аналог на C++ void addOne(int& n) { n += 1; }

main() { int a = 4; addOne(a); assert(a == 5); }

Philipp
15.07.2017
12:36:40
Передавай таблицей, они всегда по ссылке передаются

Azoyan
15.07.2017
12:39:33
require "move" Player = {x = 4, y = 9}

файл move.lua function moveTo(startPoint, destPoint, speed) if (startPoint.x ~= destPoint) then startPoint.x = startPoint.x + speed end end

у меня в другом файле, где я создал таблицу Player, в этой таблице значения player.x и player.y поменяются?

Philipp
15.07.2017
12:48:17
А как ты вызываешь moveTo?

Azoyan
15.07.2017
12:49:35
destination = { x = 60, y = 51 } speed = 30 moveTo(Player, destination, speed)

Philipp
15.07.2017
12:50:14
function test(table) table.x, table.y = table.x + 10, table.y + 20 end t = {x = 1, y = 2} test(t) print(t.x, t.y) --t.x 11 t.y 22

Azoyan
15.07.2017
12:50:37
спасибо

Snusmumriken
15.07.2017
13:04:00
ООП для слабаков? : ) Нет, технически - это и правда так. Один раз вкурил в концепт - и вот, золотой молоток, которым можно фигачить почти всё что угодно.

Group Butler [beta]
15.07.2017
13:44:01
Добро пожаловать в чат pro.lua, Firestalk! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Google
Azoyan
15.07.2017
13:54:57
причем тут ООП?

я хочу отвязать перемещение объекта от самого объекта

Snusmumriken
15.07.2017
13:56:38
Чтобы можно было перемещать разнотипные объекты?

Azoyan
15.07.2017
13:58:16
ну да)

Snusmumriken
15.07.2017
15:11:46
Ну это того.. Наследованием? Объявляем абстрактный класс сущности, имеющей, допустим, координаты и размеры, ну, и заодно пустые методы update/draw, чтобы было. Пишем к нему метод move. Наследуем от него всё остальное!

Вот тебе пример проекта с такими сущностями: https://bitbucket.org/MainTomato/tank-o-box/src/61410a4ea6bf8bbd61c0a3b9bfdbbb2f585b100b/data/entity.lua?at=master&fileviewer=file-view-default Только без метода move, но он тут частично подразумевается через applyCollision : ) Тут же, кстати, неплохой сет моих либ.

Azoyan
15.07.2017
15:20:00
у тебя есть movable объект. Есть функция move которая принимает move(Movable, Destination)

зачем наследование?

не надо переусложнять)

(пока не надо)

но я тебя понял

Philipp
15.07.2017
15:38:48
Я согласен с Лешкой, ООП всегда лучше функцией

Philipp
15.07.2017
15:39:05
Тк позволяет менять движение и его логику для каждого класса отдельно

Snusmumriken
15.07.2017
15:40:11
Ну типа вызвать метод объекта проще, чем искать какую-то конкретную функцию. А если у тебя будет ещё пять объектов, которые можно будет двигать, но чуть по другому, допустим, им при движении нужно будет ещё что-то делать, шаги считать или двигать составные части? Что, делать пять разных функций: "moveObjFoo", "moveObjBar"?

Admin
ERROR: S client not available

Philipp
15.07.2017
15:41:15
Я первый :3

Snusmumriken
15.07.2017
15:41:42
Ну, ты вообще умничка : ) Ещё бы с мотивацией у тебя не было проблем, то было бы вообще зашибись. Мы оба забыли уточнить, что мы ещё и имеем доступ к родительскому методу, даже если определили свой. Больше возможностей, например, когда нам просто нужно сделать дополнительные действия, чтобы не копипастить туда-сюда функцию того же движения - в переопределённом методе предка - можно вызвать оригинальный метод предка и сделать ещё что-нибудь.

ООП с наследованием для чайников от Снусмумрика:

Ну, а в ООП - foo = {} foo.__index = foo function foo:new(x, y) local o = {x = x, y = y} return setmetatable(o, self) end bar = setmetatable({parent = foo}, {__index = foo}) bar.__index = bar function bar:new(x, y, w, h) local o = self.parent:new(x, y) o.w, o.h = w, h return setmetatable(o, self) end foobar = setmetatable({parent = bar}, {__index = bar}) foobar.__index = foobar function foobar:new(x, y, w, h, z, v) local o = self.parent:new(x, y, w, h) o.z, o.v = z, v return setmetatable(o, self) end

Проследи, что вызывается в функции o = self.parent:new(x, y, w, h, z, v) Там дёргаются функции new начиная от foo:new до foobar:new. Можешь обозвать не parent а super. Это более питоноподобно и типа "традиционное" название батьки, а ля "суперкласс".

Google
Snusmumriken
15.07.2017
15:45:49
Методы и ключи у потомков вызываются по мере поиска. Нашли в объекте? Вызвали или выдали. Не нашли? Поискали у класса. Нашли? Выдали. Нет? Поискали у суперкласса. И т.д, дальше сам разберёшься, тут всё по изичу.

Ну, в результате удобно делать интерфейсы. Допустим, прописали функцию draw и у суперкласса и у дочернего класса. Объекты суперкласса будут пользоваться методом draw суперкласса, а дочернего - дочернего. Таким образом, можно не париться с виртуальными классами, а хуярить сразу реальные. Если внезапно нужен перезаписанный метод суперкласса - можно вызывать как self.parent.method(self, a, b, c). Родитель родителя, соответственно, self.parent.parent. Просто как три копейки, давай осваивай )))

Azoyan
15.07.2017
15:53:56
Спасибо

MrSmeet
15.07.2017
17:12:49
Ребят, интерпритатор lua подскажите топовый

luajit,

?

Snusmumriken
15.07.2017
17:13:00
Ну ясен хрен. P.S. Сообщения можно редактировать.

MrSmeet
15.07.2017
17:16:28
Ребят, можно писать чисто на луа? Есть пакетники?

Snusmumriken
15.07.2017
17:19:11
Luarocks. Можно писать чисто на lua, но если тебе нужно что-то специфические (функции ядра, например) - пишешь header и гоняешь любую сишную библиотеку напрямую. Как альтернатива - ставишь dynasm и катаешь на ассемблере на lua. https://luapower.com/dynasm Эти фичи как раз предоставляет luajit.

Snusmumriken
15.07.2017
17:20:58
Ой, как будто писать на асме - это так странно ))))

Snusmumriken
15.07.2017
17:23:11
Очень просто, была бы документация к ним. По документации пишется header, и всё, вот тебе ffi.C.foobar.

Philipp
15.07.2017
17:23:35
Я думаю про ffi, я не прав, да?

MrSmeet
15.07.2017
17:24:10
Нууу, если бы гонять сишные либы было бы так просто)))
Я руками все писал когда в клон хса встраивал интерпритатор

Snusmumriken
15.07.2017
17:24:13
Ты про ffi, ты прав. И кстати, если есть исходники сишной библиотеки - хедер можно выдрать в полуавтоматическом режиме.

Dika
15.07.2017
17:24:47
интерпрЕтатор

Snusmumriken
15.07.2017
17:25:12
Интерпритатор, от слова "прикольная *штука*!" )) Корень - "при", остальное - приставки, суффиксы и окончания.

Group Butler [beta]
17.07.2017
07:36:07
Добро пожаловать в чат pro.lua, Ёжик! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Добро пожаловать в чат pro.lua, Serge! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Страница 109 из 307