Sök…


Enkel rörelse mellan två platser

För detta är den bästa lösningen att använda actions . För att lägga till en ny handling till en skådespelare i Scene2D bara:

Action action = Actions.moveTo(x,y,duration);
actorObject.addAction(action);

När x och y är målplatsen och varaktigheten är hastigheten på denna rörelse i sekunder ( float ).

Om du vill stoppa denna åtgärd (och skådespelaren genom det) kan du göra det genom att ringa:

actorObject.removeAction(action);

eller så kan du ta bort alla åtgärder genom att ringa:

actorObject.clearActions();

Detta kommer omedelbart att stoppa körningen av åtgärderna.

Åtgärden moveTo manipulerar x och y-egenskapen för skådespelaren, så när du drar skådespelaren till skärmen, använd alltid getX () och getY () för att rita strukturer. Precis som i följande exempel:

public class MovingActor extends Actor {

    private Action runningAction;
    private float speed = 2f;

    public void moveTo(Vector2 location) {
       runningAction = Actions.moveTo(location.x, location.y, speed);
       this.addAction(runningAction);
    }

    public void stopAction() {
       this.removeAction(runningAction);
    }

    public void stopAllActions() {
       this.clearActions();
    }

    @Override
    public void draw(Batch batch, float parentAlpha){
        batch.draw(someTexture, getX(), getY());
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow