Snusmumriken
<Key>(.-)</Key>
Можно использовать и в match и в gmatch.
Snusmumriken
А ещё я КАК РАЗ пару дней назад катал фигню, для поиска сбалансированных шаблончиков.
Snusmumriken
Написать функцию, которая в строке будет искать сбалансированные шаблоны.
Например, вот такое:
html = [[
<html>
<div>
<div>
</div>
<span/>
</div>
</html>
]]
=string_findBalanced(html, "<div>", "</div>")
><div>
<div>
</div>
<span/>
</div>
Snusmumriken
Ну кароч примерно вот так.
local huge, min = math.huge, math.min
local function string_bfind(str, head, tail, offset, ex_bounds, plain)
local header_start, header_end = str:find(head, offset or 1, plain)
if not header_start then return nil end
local cursor = header_end
local last_tail_start = 0
local counter = 1
while counter > 0 do
local ha, hb = str:find(head, cursor + 1, plain)
if not ha then ha, hb = huge, huge end
local ta, tb = str:find(tail, cursor + 1, plain)
if not ta then return nil end
counter = counter + (ha < ta and 1 or -1)
cursor = min(hb, tb)
last_tail_start = ta
end
if ex_bounds then
local a, b = header_end + 1, last_tail_start - 1
return str:sub(a, b), a, b
end
return str:sub(header_start, cursor), header_start, cursor
end
local str = "<html><div><div></div><span/></div></html>"
print(string_bfind(str, "<div>", "</div>") )
Тупой подсчёт вхождений, но фичеватость присутствует. Можно ещё оптимизировать на пару курсоров, чтобы не переискивало каждый раз начало и конец, но пока впадлу.
Hello, World! 🎄
Как это использовать?
Snusmumriken
а) Прочитать доку,
б) Расковырять либу и понять как её использовать.
Hello, World! 🎄
Snusmumriken
require"forms"
Hello, World! 🎄
requere "forms"
Hello, World! 🎄
с точкой входа?
Snusmumriken
Она должна лежать там, где её найдут.
Hello, World! 🎄
Snusmumriken
Snusmumriken
Вот например где ищет мой интерпретатор.
Первая половина — попытки подгрузить lua-либу, вторая — сишные динамические либы.
Посмотри где ищет твой интерпретатор. Но ты, разумеется, можешь добавить путь в package.path, работает примерно как переменная PATH.
Hello, World! 🎄
> require "foo"
stdin:1: module 'foo' not found:
no field package.preload['foo']
no file '/usr/local/share/lua/5.3/foo.lua'
no file '/usr/local/share/lua/5.3/foo/init.lua'
no file '/usr/local/lib/lua/5.3/foo.lua'
no file '/usr/local/lib/lua/5.3/foo/init.lua'
no file '/usr/share/lua/5.3/foo.lua'
no file '/usr/share/lua/5.3/foo/init.lua'
no file './foo.lua'
no file './foo/init.lua'
no file '/usr/local/lib/lua/5.3/foo.so'
no file '/usr/lib/x86_64-linux-gnu/lua/5.3/foo.so'
no file '/usr/lib/lua/5.3/foo.so'
no file '/usr/local/lib/lua/5.3/loadall.so'
no file './foo.so'
stack traceback:
[C]: in function 'require'
stdin:1: in main chunk
[C]: in ?
Snusmumriken
Вот добавь куда-нибудь сюда forms.lua, и оно точно найдёт.
Hello, World! 🎄
Мне в любую папке закинуть?
Snusmumriken
Возможно даже в папку с main.lua, может быть найдёт по ./foo.lua.
Hello, World! 🎄
Hello, World! 🎄
Hello, World! 🎄
Какие есть нормальные движки для создания игр на linux для android ?
Anonymous
на луа можешь попробовать defold.com
fgntfg
Corona, которая теперь Solar
Hello, World! 🎄
Hello, World! 🎄
Хороший движок, если не будет аналогов, то беру его
Anonymous
https://www.youtube.com/watch?v=Fp-eBF3NStE
Hello, World! 🎄
Спасибо!
Snusmumriken
#gamedev #lua #defold #spb #cпб #санкт-петербург #петербург #офис #remote #удаленка #fulltime #mobile #MPGames #mobilegames #работа #job
middle/senior Lua (Defold) developer - MP Games (Спб) 🚀
ЗП обсуждается индивидуально и зависит от твоих ожиданий
Рассматриваем фриланс/удаленку/офис
В связи с активным ростом и развитием наших игр, мы ищем Senior Lua (Defold) developer для работы для работы над нашим флагманским проектом Travel Blast: Puzzle.
📌 Какими задачами предстоит заниматься:
• полностью работать над игровыми проектами (писать логику, фичи, работать с графическим контентом и анимациями);
• взаимодействовать с командой программистов, художников, геймдизайнеров для реализации необходимого функционала.
✨ Как мы живем:
http://www.instagram.com/mpgames.rocks
💡 Что нам важно в вашем опыте:
• отличное знание движка Defold;
• знание Lua;
➕ Будет плюсом:
• опыт работы с любым другим игровым движком от 2 лет (UDK, UE4, Unity3D и др.);
• опыт работы в геймдеве, желательно на мобильных проектах.
🥤 Что мы предлагаем:
• работу в комфортабельном офисе в стиле лофт в историческом центре Санкт-Петербурга (5 минут от ст. м. Горьковская);
• официальное оформление согласно ТК РФ
• достойный уровень оплаты труда, обсуждаем индивидуально, бонусы по результатам работы;
• работу над интересными midcore играми;
• гибкий график: время прихода в офис до 12:00. Есть возможность работать удаленно. Мы не считаем отработанные часы, главное для нас - результат и качество;
• питание в корпоративном кафе - завтраки, обеды, ужины - мы заботимся о наших сотрудниках;
• в офисе витамины - фрукты/овощи/орешки/печеньки в неограниченном количестве;
• компенсация занятий спортом - для тех, кто привык быть в тонусе;
• насыщенная и весёлая корпоративная жизнь;
• новая техника и комфортные рабочие места.
📬 Пиши мне в личку или в телеграм: @tonika1206
Snusmumriken
Дефолдеры, тут дефолдская вакансия в СПБ.
Тоня
#gamedev #lua #defold #spb #cпб #санкт-петербург #петербург #офис #remote #удаленка #fulltime #mobile #MPGames #mobilegames #работа #job
middle/senior Lua (Defold) developer - MP Games (Спб) 🚀
ЗП обсуждается индивидуально и зависит от твоих ожиданий
Рассматриваем фриланс/удаленку/офис
В связи с активным ростом и развитием наших игр, мы ищем Senior Lua (Defold) developer для работы для работы над нашим флагманским проектом Travel Blast: Puzzle.
📌 Какими задачами предстоит заниматься:
• полностью работать над игровыми проектами (писать логику, фичи, работать с графическим контентом и анимациями);
• взаимодействовать с командой программистов, художников, геймдизайнеров для реализации необходимого функционала.
✨ Как мы живем:
http://www.instagram.com/mpgames.rocks
💡 Что нам важно в вашем опыте:
• отличное знание движка Defold;
• знание Lua;
➕ Будет плюсом:
• опыт работы с любым другим игровым движком от 2 лет (UDK, UE4, Unity3D и др.);
• опыт работы в геймдеве, желательно на мобильных проектах.
🥤 Что мы предлагаем:
• работу в комфортабельном офисе в стиле лофт в историческом центре Санкт-Петербурга (5 минут от ст. м. Горьковская);
• официальное оформление согласно ТК РФ
• достойный уровень оплаты труда, обсуждаем индивидуально, бонусы по результатам работы;
• работу над интересными midcore играми;
• гибкий график: время прихода в офис до 12:00. Есть возможность работать удаленно. Мы не считаем отработанные часы, главное для нас - результат и качество;
• питание в корпоративном кафе - завтраки, обеды, ужины - мы заботимся о наших сотрудниках;
• в офисе витамины - фрукты/овощи/орешки/печеньки в неограниченном количестве;
• компенсация занятий спортом - для тех, кто привык быть в тонусе;
• насыщенная и весёлая корпоративная жизнь;
• новая техника и комфортные рабочие места.
📬 Пиши мне в личку или в телеграм: @tonika1206
сейчас в команде на проекте 4 человека на Defold, и мы расширяем команду!)
пишите, не стесняйтесь, расскажу подробности! можно удаленно, можно в офисе работать (тем более, что сейчас свободное посещение)
Hello, World! 🎄
Сколько вообще в lua переменных?
Snusmumriken
Egor
Snusmumriken
43 в луажыте (тут есть лишняя табличка jit).
Snusmumriken
Egor
Snusmumriken
Потому что 42 должно быть в lua5.1
Egor
все есть table 😂
Egor
как в питоне - все есть объект
Snusmumriken
int float string
Тогда вопрос должен был звучать "Сколько в луа типов переменных?".
1. Number — float64 (52 бита на целую часть, 12 на мантиссу)
1.1 Number-int int64, появилось только в 5.3 и далее
2. Boolean (8 бит)
3. String (ansi-строки, без встроенного юникода)
4. Function
5. Table
6. Cdata
7. Thread (coroutine)
Александр
Александр
перечитал сообщения выше, видимо имелось в виду, что в строки можно положить любые байтики, а как их интерпретировать - на совести программиста
Hello, World! 🎄
Mikhail
Складывается впечатление что один и тот же человек под 20ю никами
Snusmumriken
(это снус спорит сам с собой прост, движуху создаёт)
Snusmumriken
Но Тони уже прошёл эти этапы, он уже не так уж плох и примерно понимает что делает.
Hello, World! 🎄
А как в луа float преобразовать в int?
Arslan
Hello, World! 🎄
Мне нужно деление без остатка скорее всего
Hello, World! 🎄
i = 10
i = i // 3
print(i)
Arslan
// неправильно как-то работает
> 15.1//1
15.0
Используй так:
math.ceil(i//3)
Arslan
Arslan
Странно
Hello, World! 🎄
На love2d вообще не работает //
Leon174
// начиная с 5.3, поэтому в ловке и не работает.
Hello, World! 🎄
Godruma-vihari Dasa
i=math.floor(x)
Godruma-vihari Dasa
ceil округляет в в большую сторону, floor — в меньшую.
Hello, World! 🎄
Ivan
А как в луа float преобразовать в int?
В луа нет int. Все числа float. Так что это сделать нельзя.
Если задача отрезать дробную часть, то можно использовать math.floor()
print(math.floor(11.98)) -- выведет 11
Но если нужно отбрасывать дробную часть и для отрицательных чисел, то math.floor() сработает не так как нужно:
print(round(-3.14)) -- выведет -4
Если необходимо работать с отрицательными числами, то можно использовать функцию вида
function round(x)
return x>=0 and math.floor(x+0.5) or math.ceil(x-0.5)
end
тогда:
print(round(-3.14)) -- выведет -3
Hello, World! 🎄
Luсky
Можно ещё просто обрезание сделать как строке
Hello, World! 🎄
Luсky
кстати, в ффи таки есть инт вроде
Luсky
только я не тыкал там преобразование.
Hello, World! 🎄
Я сейчас на love2d пытаюся рейкастинг сделать
Hello, World! 🎄
Domka
Я кажется знаю какой ты способ используешь
Domka
А ты случаем пересечение с тайлом по клетке не проверяешь?
Hello, World! 🎄
Anatoliy
Всем привет, ребята подскажите по проблеме - мне понадобилась известная библиотечка luasocket от Диего Нехаба для луа 5.3 на 64 бит, скачал https://github.com/diegonehab/luasocket, скомпилил, там вообще уже готовый проект под msvc, все просто, осталось только указать путь к луевым 5.3 инклюдам и луа 5.3 либе, выставил release x64 и запустил сборку, все ОК собралось, только при подключении dll в скрипте выкидывает ошибку - error loading module 'socket.core' from file ...\socket\core.dll the specified procedure could not be found
Anatoliy
И при этом что странно я открыл свойства скомпиленных dll, через Total commander, а их там две в итоговой папке компиляции - \socket\core.dll и \mime\core.dll и в них нету зааисимости от lua53.dll
Anatoliy
Anatoliy
Но экспортируемая луа функция есть:
Anatoliy