libgdx
Flytta skådespelare på väg med konstant hastighet
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