потоки працюють не паралельно , а по черзі перемикаються між собою виконуючи по маленькій частинці з кожного потоку
--потік1
function move() for x=1,100 do sprite:setX(x)
--перемикаємо на інший потік
Core.yield(true)
end
for y=1,100 do
sprite:setY(y)
--перемикаємо на інший потік Core.yield(true) end print ("Animation complete") end
----------------------------------------
--потік2
function pulse() local i=0 while (true) do sprite:setAlpha((math.sin(i))^2) i=i+0.1
--перемикаємо на інший потік
Core.yield(true)
end
end
----------------------------------------
--основний цикл програми
sprite=Shape.new() sprite:setFillStyle(Shape.SOLID,0xFF0000) sprite:moveTo(0,0) sprite:lineTo(100,0) sprite:lineTo(100,100) sprite:lineTo(0,100) sprite:endPath() stage:addChild(sprite)
--запускаємо потоки
Core.asyncCall(move)
Core.asyncCall(pulse)
Немає коментарів:
Дописати коментар