Size: a a a

2021 October 10

AM

Alexey Melnichuck in pro.lua

The unit of compilation of Lua is called a chunk



break вроде только из циклов выходит

while 1 do do do break end end end

( не проверял, но удивлюсь если несработает )
источник

DS

Daniil Smolyakov in pro.lua
Точно. Выходит из while сразу.
источник

S

Snusmumriken in pro.lua
Можно в love.draw получить dt, и иногда это бывает крайне полезно, например "если игрок коснулся чего-то — нарисовать поверх него квадратик". Но есть такое правило под названием "разделение логики и представления". В первом у тебя логика, во втором — представление.
источник

S

Snusmumriken in pro.lua
if 1 then return end
источник

IS

Ivan Stepanov in pro.lua
Круто, но можно было сделать одну функцию:
function love.tick()
 love.update()
 love.draw()
end
источник

S

Snusmumriken in pro.lua
Внутри ловки это и так одна функция
источник

S

Snusmumriken in pro.lua
источник

S

Snusmumriken in pro.lua
Которую можно изменить.
источник

IS

Ivan Stepanov in pro.lua
Крч непонятное усложнение. run вроде вообще убрали?
источник

S

Snusmumriken in pro.lua
Нет, разумеется.
источник

S

Snusmumriken in pro.lua
Да не усложнение это, ёпсель, это обычная нормальная практика разделения ))
источник

IS

Ivan Stepanov in pro.lua
Ааааааааааа
источник

S

Snusmumriken in pro.lua
Ещё update/draw, как раз, разделены в том числе для принципиальной возможности пропуска кадров, моделирования срезов по времени, например в update идёт какой-то сверхтяжёлый малоостановимый процесс на корутинах, разрешаемый не за один десяток кадров, на draw — отрисовка текущего среза.

Для фиксированного обновления физики, для полного формирования мешей/батчей, и в целом, для ru.wikipedia.org/wiki/Model-View-Controller
источник

z

zeroxthree in pro.lua
А как вообще update реализовывается в других языках, без фреймворков, через потоки?
источник

S

Snusmumriken in pro.lua
Хех, обычно точно так же как тут, обычный цикл, только разработчик обычно сам разделяет условный update и draw.

Могут и через потоки: отрисовка в "главном", обновление в "параллельных".
источник

IS

Ivan Stepanov in pro.lua
Такого треша я давно не встречал, но оно работает
Треш потому что чувак попытался сделать всё и сразу, а в итоге его программа не способна отличить
require('lib')
от
-- require('lib')
источник

IS

Ivan Stepanov in pro.lua
ещё и зависимость от LOADLIB добавляется зачем-то, когда я старательно хотел её избежать
источник

IS

Ivan Stepanov in pro.lua
Какие ещё варианты? На learnxiny я видел следующее:
-- Another file can use mod.lua's functionality:
local mod = require('mod')  -- Run the file mod.lua.

-- require is the standard way to include modules.
-- require acts like:     (if not cached; see below)
local mod = (function ()
 <contents of mod.lua>
end)()
-- It's like mod.lua is a function body, so that
-- locals inside mod.lua are invisible outside it.
источник

IS

Ivan Stepanov in pro.lua
Блин, а если сделать так, то будет сложнее дебажить код. В общем, единственное верное решение сделать файловую систему
источник

IS

Ivan Stepanov in pro.lua
Туплю. В Lua ведь можно в одну строчку код писать? Ну вот, AST парсером уберу комментарии, заменю multi-line строчки на one-line строчки, затем в одну строчку заменю require.
источник