@IT-Programmer

Почему приложение на corona SDK забивает оперативку?

Почему приложение на corona SDK забивает оперативку?
Код main.lua:
function update(e)
  display.newRect(w/2, h/2, w, h):setFillColor(0,0,0,1);

  display.newText(os.date('*t').sec, w/2, h/2);
end;

Runtime:addEventListener( "enterFrame", update );

Код показывает секунды, спустя минут 5 работы этого кода оперативка забивается...
Как можно исправить эту проблему, может можно реализовать это как-то по другому?
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Corona работает не как love2d и другие более низкоуровневые движки.
display.newRect() это не закрасить область фреймбуфера определённым цветом, это создать объект в памяти, который будет сам отрисовываться каждый кадр без необходимости функции update (enterFrame).

enterFrame же нужен для обновления уже созданных объектов, а не для создания новых каждый кадр. Поэтому оперативка и забивается.

local rect = display.newRect(w/2, h/2, w, h)
rect:setFillColor(0,0,0,1)

local label = display.newText('', w/2, h/2)
local function update(e)
  label.text = os.date('*t').sec
end

Runtime:addEventListener( "enterFrame", update );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы