Snusmumriken
Особый профит в минимальном количестве ячеек.
Ну, а мне ещё проще, потому что я цепляюсь за координаты камеры, и рендерю/обновляю только то что туда влезает и ещё чутка.
Saphire
Это вообще quad tree
Snusmumriken
Нет чувак, это уже octree )))
Saphire
Тьфу, число перепутал
Saphire
Но да
Snusmumriken
Меня больше радует простота, с которой всё это можно организовать. Я просто сварганил что-то похожее на движок, и до сих пор дрочу на архитектуру.
Saphire
Ммм?
Saphire
А теперь попробуй использовать opengl вместо löve2d
Snusmumriken
Не хочу :Р
Snusmumriken
Я живу в love2d, смысла жизни меня лишить хочешь?
Snusmumriken
Кстати, какая разница? В opengl будет так же вызываться метод draw : )
Камера - это мой объект.
Хеш - это мой объект.
World/collider - тоже мои объекты, не относятся к love2d никаким боком.
Я к тому, что нет разницы между тем, использовал бы я opengl или love2d.
Saphire
Ну.. в opengl тебя ждёт куча веселия типа "насколько старые это доки"
Snusmumriken
Ну и зачем это мне? У меня слишком много времени? : )
Saphire
Только там понятно, только если ты знаешь opengl
Snusmumriken
Я разбираюсь в glsl (благодаря love2d, оно там компилится из строчки сишного кода на лету) => мне не составляет труда разобраться в opengl.
Да, я потратил на это приличный объём времени пару лет назад, в несколько заходов.
Но тем не менее.
Карочи, не говори глупости, ладно?
Мне надо программы писать, а не ебаться со всем этим.
Я и так на средне-низком уровне тусю, совсем лоулевел нужен в уникальных случаях.
Snusmumriken
))
Snusmumriken
Сам факт существования языка провоцирует велосипедостроение (делаю вид что оправдываюсь).
Snusmumriken
Ну не скажи, я ему ручку жал. Он меня не проклял.
Snusmumriken
О да ))
Snusmumriken
Где ещё?
Он практически не ездит. А в мейле побывал.
Snusmumriken
Вот мейл он проклял за то, что они строят велосипед в виде своей виртуальной луа-машины, когда уже есть ванилька и luajit.
Snusmumriken
Ох, давай ещё саммит миникруфтеров.
Вещ или бан.
Snusmumriken
Ну щито поделать, народ хочет кучи виртуальных машин.
А то что либ и так немного, и все надо будет переписывать под каждую виртуалку - никого не волнует, мда.
P.S. Давай ты тоже не будешь писать гору сообщений, ладно?
Тебе отредактировать сложно? : )
Saphire
Ну хоть не JavaScript
Snusmumriken
У меня в руках банхаммер.
Ты не модератор, чтобы указывать мне кому указывать.
Snusmumriken
Возьми печеньку )))
Это все и так в курсе, что ты - самый хорошенький.
Но дело в том, что я тут самый злой модератор.
Saphire
Там хуже. Его не просто везде запихнули, ещё и в него сам всё запихнули
Saphire
И теперь там что программирование через require чистое
Snusmumriken
Программирование через require - это типа этого?
server = require('server')
(require("callbacks")
(require("filter")
(require("filter_for_callbacks")
);
);
);
Saphire
Оно самое
Saphire
Ну может чуть своего кода, но там просто куча зависимостей у всего
Saphire
А теперь самое страшное..
Кто-то сделал пакет left_pad
Saphire
Тупо добавить Н символов до нужной длины
Saphire
И им пользовались
Snusmumriken
16 год.
https://habrahabr.ru/post/280099/
Saphire
По мне, так как-то слишком.
Saphire
Последнее, это что?
Saphire
А, упс. С графами не сильно знаком
Snusmumriken
Кто ханжа? Ты ханжа, ёпт )))
А знаешь почему?
Кто так обзывается - тот сам так называется, вот.
Saphire
Детсад развели :Р
Saphire
Saphire
Теперь надо тоже самое с Lua :D
Saphire
Andrey
привет!
известно, что _ENV=_G в каждом новом блоке, не так ли?
если в интерпретаторе ввести что-то а-ля
for k,v in pairs(_ENV) do print(k,v) end
то даже после ввода _ENV=nil
мы получим список ключей, т.к. каждая строчка объявляет свой _ENV как и икаждый загружаемый функцией load файл
всё верно?
Andrey
внимание, вопрос, чем инициализируется _ENV в новой строке, если сказать _G=nil ?
Andrey
_ENV откуда-то берёт старую таблицу и в доке говорится, что это _G, но _G у меня nil
Andrey
> print(_ENV)
table: 0x18b45e0
> print(_G)
nil
> _ENV=nil
> print(_ENV)
table: 0x18b45e0
Andrey
> print(_ENV._G)
nil
Andrey
чо за магия?
Andrey
это то тут причём?
Andrey
Andrey
а я что написал, когда писал
известно, что _ENV=_G в каждом новом блоке, не так ли?
если в интерпретаторе ввести что-то а-ля
for k,v in pairs(_ENV) do print(k,v) end
то даже после ввода _ENV=nil
мы получим список ключей, т.к. каждая строчка объявляет свой _ENV как и икаждый загружаемый функцией load файл
Andrey
@CyberSpirit , ты, наверное, не понял суть вопроса
Andrey
верно ли утверждение каждый блок кода (строка в интерпретаторе, блок do..end, файл) предваряется _ENV=_G ?
Andrey
во что он их будет сбрасывать? т.е. что он будет присваивать в _ENV?
Andrey
а _G в свою очередь есть ни что иное как _ENV._G
Andrey
а каким макаром a очутилась в _G?
_ENV={_G=_G} _G.print(_ENV._G) _G.print(_ENV) a=10 _G.print(a) _ENV={_G=_G} _G.print(_G.a)
Anonymous
кстати, такой вопрос - можно ли узнать названия переменных, указаных при обьявлении функции (без парсинга исходного файла, офк)
Anonymous
к примеру, local function test(varone, vartwo).. end
Anonymous
как получить varone, vartwo (именно названия)
Anonymous
ну, кроме очевидного распарсить исходник
Saphire
Anonymous
зарейзить ошибку, когда какой-либо аргумент не соответствует ожиданию
Anonymous
чтобы понимать, какой именно, а не просто порядковый номер
Anonymous
Ну как же нету? ;)
function hello(first, second)
--print(first, second)
end
print(string.dump(hello))
for k,v in pairs(debug.getinfo(hello)) do
print(k,v)
end
Насчет debug: может там что-то подходящее есть, я мельком посмотрел, а так вообще никогда не использовал.
Единственное, стоит помнить, что байт-код может отличаться в зависимости от версии или реализации.
Anonymous
Тссс! :) С этим пусть разбирается тот, кому надо чтобы локальные переменные функций соответсвовали линии партии
Anonymous
Может нужен бот, который заменит Lua Demo в чате?
Написал кусок кода в чате, подписал !lua и он ответом вывод std кидает
Имхо, снимок экрана в этом случае — перебор
Dika
Это саблайм?
Dika
Dika
Language:
lua
Source:
print('test');
Result:
test
Dika
Сколько здесь сотен плагинов?
Alexey
-- New API in v3
local store = {}
local c = cURL.easy{
url = "http://localhost:8088/ari/channels",
userpwd = "asterisk:asterisk",
}
:setopt_writefunction(table.insert, store)
c:perform()
-- v2 API (продолжает работать как и раньше)
local store = {}
local c = cURL.easy_init()
c:setopt_url("http://localhost:8088/ari/channels")
c:setopt_userpwd("http://localhost:8088/ari/channels")
c:perform{writefunction = function(str)
store[store + 1]= str
end}
Я не считаю что передача параметров в perfrom хорошая идея.
easy::perform не является обязательным вызовом. Например при использовании
multi API может истользоватся multi::perform или да же без perform вообще в асинхронном режиме.
Так же один и тот же easy handle может использоватся более чем один раз
Alexey
v2 это cURL.easy_init v3 cURL.easy
Anonymous
ну на питуне есть официальная тележная либа
Anonymous
а свн потому что можем
Alexey
Bizaar / CVS :)
Anonymous
клиента офк
ㅤ
Захотел плагин к кое-чему написать на Мунскрипте, но таскать его с плагином не особо удобно, как и иметь в два раза больше исходников, поэтому я слегка упоролся и засунул Мунскрипт в одну Lua-библиотеку. Теоретически может быть pure Lua, но на самом деле там с LuLPeg проблемы. На случай, если кому-то такое нужно: https://github.com/Penguinum/Moonyscript