local path = pather:getPath(startx,starty, endx,endy)
if path then
compPath = display.newGroup();
for node, count in path:nodes() do
--timer.performWithDelay( 1000, function (event)
print(('Step: %d - x: %d - y: %d'):format(count, node:getX(), node:getY()))
local tile = display.newRect((node:getX() * 50) - 25, (node:getY() * 50) - 25, 48, 48)
colorCell(tile, 0, 0, 255)
tile.alpha = 0
usleep(500);
transition.fadeIn( tile, { time=1500 } )
compPath:insert(tile)
--end
--)
end
end
我有这条路,我试图动画,因为它出现但似乎所有人都显示,即使有延迟,或者如果我把它放在计时器进入喷射。我是否必须每隔一秒使用帧率显示它?
我错过了什么?
答案 0 :(得分:3)
您没有增加循环中的延迟时间,因此您计划所有路径节点在1秒内显示。
请记住,循环几乎立即执行(计算机速度很快)。
试试这个:
if path then
compPath = display.newGroup();
local revealInterval = 500
local revealTimeout = 0
for node, count in path:nodes() do
timer.performWithDelay( revealTimeout, function (event)
local tile = display.newRect((node:getX() * 50) - 25, (node:getY() * 50) - 25, 48, 48)
colorCell(tile, 0, 0, 255)
tile.alpha = 0
transition.fadeIn( tile, { time=1500 } )
compPath:insert(tile)
end
)
revealTimeout = revealTimeout + revealInterval
end
端