出于某种原因,如果 else 语句执行次数过多,下面的代码将引发堆栈溢出错误。我试图让 scene.targeting 函数从objTable
传入的参数中选择一个目标,但只有带有 a 的目标.tgtFlag == false
才是有效的选择。如果该函数选择一个具有 的目标.tgtFlag == true
,它会调用在同一组参数中传递的 scene.targeting 函数。
中断的行是local theTarget = params.objTable[math.random( 1, #params.objTable )]
但仅在else scene.targeting(params) end
被调用几次之后。
任何帮助将不胜感激。
function scene.targeting( params ) -- Targeting functions
function animateTarget( target )
if target.savedFlag == false then
transition.to( target, {time = 100, y = target.y - 15} )
transition.to( target, {time = 100, delay = 150, y = target.y, onComplete = animateTarget} )
end
end
local theTarget = params.objTable[math.random( 1, #params.objTable )]
if theTarget.tgtFlag == false then
theTarget.tgtFlag = true
animateTarget(theTarget)
else
scene.targeting(params)
end
end