Enable resetting default frame when movement is finished
This commit is contained in:
@@ -22,4 +22,10 @@ public abstract class AnimationableObject extends RenderableObject {
|
||||
public abstract boolean shouldAnimate();
|
||||
|
||||
public abstract Vector2f[] getSpriteAnimationFramesPositions();
|
||||
|
||||
protected void setAnimationFrame(Vector2f framePosition) {
|
||||
var material = this.getMaterial();
|
||||
var spriteSize = material.getSpriteSize();
|
||||
material.setSpritePosition(spriteSize.x * framePosition.x, spriteSize.y * framePosition.y);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,9 +17,8 @@ public class DefaultAnimator implements Animator {
|
||||
var positions = object.getSpriteAnimationFramesPositions();
|
||||
var delay = object.getAnimationSpeed();
|
||||
var currentPosition = (int) (System.currentTimeMillis() % (positions.length * delay)) / delay;
|
||||
var spriteSize = object.getMaterial().getSpriteSize();
|
||||
var current = positions[currentPosition];
|
||||
object.getMaterial().setSpritePosition(spriteSize.x * current.x, spriteSize.y * current.y);
|
||||
object.setAnimationFrame(current);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user