Question

Is there any way that a can stop an action where it is before it is completed in libGDX Scene2D. I have an actor that is in the middle of a moveTo action but when i set a boolean gameOver to true I want the actor to stop where it is. How would I do that? It seems simple but I cant figure it out.

Was it helpful?

Solution

You can stop Actions by:

  1. removing them with actor.removeAction(Action) or actor.clearActions()
  2. you can override the actor.act(delta) method, and if gameOver is set don't update the Actor (don't call super.act())
  3. In the render don't call act for the stage, if gameOver is set

So basicly the Actions get updated in the act method of Actor. If your gameOver is set to true you can simply stop the Stage from updating:

In Render:

if (!gameOver) {
    stage.act();
}
stage.draw();
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top