Fix MovableSprite position and coordinates evaluation
This commit is contained in:
@@ -30,8 +30,8 @@ public abstract class BaseLayer implements Layer, Updatable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pushAnimation(Animation animation) {
|
public void pushAnimation(Animation animation) {
|
||||||
animations.add(animation);
|
|
||||||
animation.setStepSize(stepSize.x(), stepSize.y());
|
animation.setStepSize(stepSize.x(), stepSize.y());
|
||||||
|
animations.add(animation);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.bartlomiejpluta.base.engine.world.animation.model.AnimatedSprite;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
|
import org.joml.Vector2fc;
|
||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
import org.joml.Vector2ic;
|
import org.joml.Vector2ic;
|
||||||
|
|
||||||
@@ -86,7 +87,21 @@ public abstract class MovableSprite extends AnimatedSprite implements Updatable
|
|||||||
public void setCoordinates(int x, int y) {
|
public void setCoordinates(int x, int y) {
|
||||||
coordinates.x = x;
|
coordinates.x = x;
|
||||||
coordinates.y = y;
|
coordinates.y = y;
|
||||||
setPosition((x + 0.5f) * coordinateStepSize.x, (y + 0.5f) * coordinateStepSize.y);
|
super.setPosition((x + 0.5f) * coordinateStepSize.x, (y + 0.5f) * coordinateStepSize.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPosition(float x, float y) {
|
||||||
|
super.setPosition(x, y);
|
||||||
|
coordinates.x = (int) (x / coordinateStepSize.x);
|
||||||
|
coordinates.y = (int) (y / coordinateStepSize.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPosition(Vector2fc position) {
|
||||||
|
super.setPosition(position);
|
||||||
|
coordinates.x = (int) (position.x() / coordinateStepSize.x);
|
||||||
|
coordinates.y = (int) (position.y() / coordinateStepSize.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCoordinates(Vector2ic coordinates) {
|
public void setCoordinates(Vector2ic coordinates) {
|
||||||
@@ -96,7 +111,12 @@ public abstract class MovableSprite extends AnimatedSprite implements Updatable
|
|||||||
public void setStepSize(float x, float y) {
|
public void setStepSize(float x, float y) {
|
||||||
coordinateStepSize.x = x;
|
coordinateStepSize.x = x;
|
||||||
coordinateStepSize.y = y;
|
coordinateStepSize.y = y;
|
||||||
setCoordinates(coordinates);
|
|
||||||
|
if (!position.equals(0, 0)) {
|
||||||
|
setPosition(position);
|
||||||
|
} else {
|
||||||
|
setCoordinates(coordinates);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int chebyshevDistance(Vector2ic coordinates) {
|
public int chebyshevDistance(Vector2ic coordinates) {
|
||||||
|
|||||||
Reference in New Issue
Block a user