3

何らかの理由で、次のコードは、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
4

1 に答える 1