Как нарисовать отрезок круга в Луа в Короне? - PullRequest
1 голос
/ 25 октября 2011

давно это последний раз, когда мне нужно было:)

Мне просто нравится создавать круг с сегментом и другой заливкой или прозрачный.Так что у меня просто как секундомер, заполняющий круг временем (60 секунд).

функция вида a> showsegment (xcircle, ycircle, radius, секунд):} @

любые короткие строкиприводя к этому решению, добро пожаловать.Код должен работать в Corona Framework, в Lua.

Ответы [ 2 ]

0 голосов
/ 26 октября 2014

Я не уверен, что это то, что вы ищете, но, увидев этот вопрос, мне стало любопытно, поэтому я возился с этим и подумал (если это то, что вы ищете): тик = 0; галочки = {};

cr = 250; -- Circle radius
hr = 0.9; -- hand radius
hw = 10; -- hand width
mr = 0.25; -- middle radius (fg)

bg = display.newCircle(cr, cr, cr); -- background
for i=1,360 do
    local w = hr * (cr * 2);
    local x = (w/2)+(((cr*2) - w)/2);
    local t = display.newRect(x,x,hw,w);
    t:rotate(i-1);
    t:setFillColor(0,0, 0);

    table.insert(ticks, t);
end


function drawTick(e)
    print("tick "..tick);
    local dg = display.newGroup();
    local w = hr * (cr * 2);
    local x = (w/2)+(((cr*2) - w)/2);
    local t = display.newRect(dg, 0, -w/4, 10, w/2);

    dg.x = x;
    dg.y = x;
    t:setFillColor(0, 1, 0);
    dg:rotate(tick-1);

    table.insert(ticks, t);
    fg = display.newCircle(cr,cr,mr*cr);

    if tick < 361 then
        tick = tick + 1
        timer.performWithDelay(50, drawTick);
    end
end

timer.performWithDelay(0, drawTick);

РЕДАКТИРОВАТЬ: Я немного очистил код.

0 голосов
/ 03 ноября 2011

Не думаю, что ты можешь.Использование изображения с альфа и оттенком не вариант?Да, вам придется создать 60 объектов, по одному на каждый тик, но в любом случае изображения кэшируются, поэтому вы загружаете его и выделяете для него только один раз.Каждый следующий экземпляр дешев.

...