Чтобы расширить то, что написал Егор Скриптунов, вы можете сделать что-то вроде этого:
-- code...
randomKotak = randomKotak or love.math.random(#kotak)
love.graphics.draw(kotak[randomKotak], 200, 200, 0.05, 1, 1, 16, 16)
-- code...
Причина, по которой это работает, заключается в том, что оператор or
в Lua вернет первый операнд, если он разрешится в trueили второй операнд, если нет.При первом запуске randomKotak
равняется nil
, принимая значение false.Это заставляет randomKotak
быть установлен на второй операнд (рандомизатор).В следующий раз при запуске randomKotak
будет число, которое Lua преобразует в true, в результате чего randomKotak
устанавливается на себя.
Одной из проблем этого кода является то, что он создает глобальную переменную, которая может вызвать проблемы позже.Может быть лучше добавить локальный на корневом уровне в ваш код (вне функции / цикла), изменив код на что-то вроде этого:
local randomKotak = nil
function drawKotak() -- or whatever the function's called
-- code...
randomKotak = randomKotak or love.math.random(#kotak)
love.graphics.draw(kotak[randomKotak], 200, 200, 0.05, 1, 1, 16, 16)
-- code...
end
Это сделает код таким в других файлахне нарушит эту функцию.