Alexander
где?
Хоть где
Null
нет
Null
это так не работает
Alexander
А как работает?
Null
одно дело - в Love2D, другое дело в другом движке, третье дело в ОС, причём в разных ОС движение мыши тоже определяется по-разному
Alexander
В принципе разницы в движке нет
Alexander
Главное чтобы было lua)
Alexander
Легко же
на словах все легко
Hello, World! 🎄
Left, Right замени на -1 и 1 или что там тебе надо
Hello, World! 🎄
Hello, World! 🎄
Вот весь код, не понимаю почему тебе это казалось трудным: function love.load() m = {x = 0, y = 0} end function mouse() if mx < m.x then return -1 elseif mx > m.x then return 1 end return '' end function love.update(dt) mx, my = love.mouse.getPosition() end function love.draw() love.graphics.print(mouse(), 10, 10) m.x = mx end
Alexander
круто! то что надо! Спасибо!
Hello, World! 🎄
круто! то что надо! Спасибо!
Не за что, просто нужно сначала надо было подумать, а потом задавать вопрос в чат)
Hello, World! 🎄
да что-то мозг в воскреснье уже не работает =)
А что ты пишешь если не секрет?
Alexander
управление для тетриса
Hello, World! 🎄
У Love2d есть группа @love2d_ru Просто если задавать вопросы по Love2d, то наверно лучше там
Alexander
Да нет же я не по ловке вопросы задаю)
Alexander
Я вообще в дефолде делаю
Alexander
function init(self) msg.post(".", "acquire_input_focus") self.m = {x = 0, y = 0} end function on_input(self, action_id, action) self.mx = action.x if self.mx < self.m.x then self.m.x = self.mx print("left") elseif self.mx > self.m.x then self.m.x = self.mx print("right") end self.m.x = self.mx end вот твой код в Defold
Hello, World! 🎄
Я вообще в дефолде делаю
А понял, просто увидел что речь выше про Love2d и подумал, что на Love2d пишешь.
Alexander
так то разницы нет какой движек
Alexander
https://t.me/DefoldEngine
Alexander
если интересно
Hello, World! 🎄
Сейчас обычно если выбирают движок, то это либо unity или unreal engine, либо Godot (который кстати open source)
Alexander
чаще всего первое)
Hello, World! 🎄
Не удивительно т.к под него много всяких уроков на Youtube и там C# (легкий язык)
Hello, World! 🎄
Насчет Unreal Engine он вроде требует мощное железо (не знаю, не проверял) и там C++ новичкам сложнее.
Hello, World! 🎄
Godot относительно простой движок и его GDScript не такой трудный, но уроков меньше чем по Unity.
Alexey
А сам движок популярен, я знаю что есть такой движок, но не часто встречал, что кто-то его использует
Я недавно ходил на подкаст рассказывал как у нас в Defold дела, если интересно можно послушать тут https://t.me/DefoldNews/216
Hello, World! 🎄
Я недавно ходил на подкаст рассказывал как у нас в Defold дела, если интересно можно послушать тут https://t.me/DefoldNews/216
Возможно гляну, но меня не особо интересуют игровые движки для моих целей вполне хватает love2d
Null
А напомните, пожалуйста, как с этим бороться, пожалуйста? https://paste.mva.name/HB1uu6hS.txt
Null
точнее, вообще, по факту, у меня релевантный код в реальном приложении выглядит вот так:
Null
Null
и вот эти отладочные принты показывают что в каждой итерации цикла в service_unified_def разные значения, но all_statuses перезаписывается копиями последнего значения. Т.е. по задумке там должно заполняться результатами каждой итерации, а оно заполняется копиями последнего значения.
Null
мне казалось, что каждую итерацию цикла при переобъявлении local-переменной она переинициализируется с нуля
Null
а тут фактически получается переиспользование того же указателя, похоже
Null
причём, не помогает даже local service_unified_def = {} service_unified_def = service_unify(service_type, service_node_defs)
Aqendo
видимо table.insert пихает не таблицу, а указатель на неё
Aqendo
не в тот чат попал
Aqendo
Hello, World! 🎄
Не думал, что тебя здесь увижу ._.
Snusmumriken
Омг, хацкеры подъехали.
Null
видимо table.insert пихает не таблицу, а указатель на неё
ну, это-то очевидно, из поведения. Только я так и не пойму как это победить 😢
Null
ну, кроме как заполнением новой таблицы через прохождение по полям старой
Hello, World! 🎄
ну, кроме как заполнением новой таблицы через прохождение по полям старой
Попробуй так: function new_t(f) return f end table.insert(таблица, new_t(таблица которую вставить))
Aqendo
Но может снус или кто-нибудь знают больше гугла, не исключено
Snusmumriken
Попробуй так: function new_t(f) return f end table.insert(таблица, new_t(таблица которую вставить))
Нет, это буквально ссылка. Копирований не происходит. Новые таблицы создаются только и исключительно когда мы используем фигурные {} скобочки. Нет фигурных скобочек — нет новой таблицы.
Hello, World! 🎄
пробовал, не помогает
А если добавить local nt = t return nt ?
Snusmumriken
Чел, нет. Таблицы это ссылки на таблицы. Это копирование ссылки, но таблица та же самая.
Aqendo
function table.swallow_copy(t) local t2 = {} for k,v in pairs(t) do t2[k] = v end return t2 end только так предлагают
Snusmumriken
Только так и надо, если тебе действительно нужна именно копия.
Hello, World! 🎄
Чел, нет. Таблицы это ссылки на таблицы. Это копирование ссылки, но таблица та же самая.
Я знаю, но я думал что так может сработать из-за возврата локальной таблицы
Igor
А лучше написать функцию deep_copy, либо скоммуниздить
Hello, World! 🎄
Нет, не сработает.
я уже понял, зачем повторять?)
Aqendo
function table.swallow_copy(t) local t2 = {} for k,v in pairs(t) do t2[k] = v end return t2 end только так предлагают
форматирование в тг последнее время работает через жопу.
Snusmumriken
А лучше написать функцию deep_copy, либо скоммуниздить
У deep_copy неимоверно дичайшее количество трейдоффов: 1. Зацикленные таблицы 2. Множественные ссылки на одну и ту же таблицу 3. Юзердата 4. В таблице находятся функции с замыканиями 5. Не только значения, но и сами ключи таблицы могут быть таблицами, функциями, юзердатой и чем бы то ни было ещё, и непонятно что с этим делать. И ещё много интересного. А ещё непонятно, копировать метатаблицу или использовать старую, если оно имеется. А у чего копировать а у чего не копировать. Карочи, много интересных штук.
Null
форматирование в тг последнее время работает через жопу.
если в бектики убирать (или иным способом в моноширинный текст форматировать), то не через жопу
Null
```?
да
Snusmumriken
Ну тады можно for k, v in pairs(src) do dst[k] = v end
Snusmumriken
ну, кроме как заполнением новой таблицы через прохождение по полям старой
Вот тебе простейшее копирование, которое можно применять к расшифрованному json'у: function tbl_copy(src) local dst = {} for k, v in pairs(src) do if type(v) == "table" then v = tbl_copy(v) end dst[k] = v end return dst end
Aqendo
да
Вот они как раз и не работают у меня адекватно.
Igor
Ды вроде норм
Aqendo
function f(a) return a + 1 end print(f(1336))
Паша не завёз луа подсветку синтаксиса вроде
Aqendo
(зато браинфаку завёз)