Шукати в цьому блозі

Багатопотоковість

виконуємо 2 потоки одночасно  "move" і "pulse"


потоки працюють не паралельно , а по черзі перемикаються між собою виконуючи по маленькій частинці з кожного потоку

--потік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)

Немає коментарів:

Дописати коментар