diff --git a/engine/src/main/java/com/bartlomiejpluta/base/core/world/animation/AnimationableObject.java b/engine/src/main/java/com/bartlomiejpluta/base/core/world/animation/AnimationableObject.java index ab51ea7e..dc377a0b 100755 --- a/engine/src/main/java/com/bartlomiejpluta/base/core/world/animation/AnimationableObject.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/core/world/animation/AnimationableObject.java @@ -7,10 +7,14 @@ import org.joml.Vector2f; import org.joml.Vector2i; public abstract class AnimationableObject extends RenderableObject { + protected final Vector2i spriteSheetDimension; + public AnimationableObject(Mesh mesh, Material material, Vector2i spriteSheetDimension) { super(mesh); + this.spriteSheetDimension = spriteSheetDimension; + setMaterial(material); - material.setSpriteSize(1 / (float) spriteSheetDimension.x, 1 / (float) spriteSheetDimension.y); + material.setSpriteSize(1 / (float) spriteSheetDimension.y, 1 / (float) spriteSheetDimension.x); } // Returns time in ms between frames diff --git a/game/src/main/java/com/bartlomiejpluta/base/game/world/entity/DefaultEntityManager.java b/game/src/main/java/com/bartlomiejpluta/base/game/world/entity/DefaultEntityManager.java index eaa55319..bb67caf3 100755 --- a/game/src/main/java/com/bartlomiejpluta/base/game/world/entity/DefaultEntityManager.java +++ b/game/src/main/java/com/bartlomiejpluta/base/game/world/entity/DefaultEntityManager.java @@ -24,6 +24,6 @@ public class DefaultEntityManager implements EntityManager { var dimension = configuration.getDimension().asVector(); var spriteWidth = texture.getWidth() / (float) dimension.y; var spriteHeight = texture.getHeight() / (float) dimension.x; - return meshManager.createQuad(spriteWidth, spriteHeight, spriteWidth / 2, spriteHeight); + return meshManager.createQuad(spriteWidth, spriteHeight, spriteWidth / 2, spriteHeight*0.9f); } } diff --git a/game/src/main/java/com/bartlomiejpluta/base/game/world/entity/Entity.java b/game/src/main/java/com/bartlomiejpluta/base/game/world/entity/Entity.java index 0964a4a4..1b2417e4 100755 --- a/game/src/main/java/com/bartlomiejpluta/base/game/world/entity/Entity.java +++ b/game/src/main/java/com/bartlomiejpluta/base/game/world/entity/Entity.java @@ -5,9 +5,11 @@ import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh; import com.bartlomiejpluta.base.core.world.movement.Direction; import com.bartlomiejpluta.base.core.world.movement.MovableObject; import lombok.Setter; +import org.checkerframework.common.value.qual.IntRange; import org.joml.Vector2f; import java.util.Map; +import java.util.stream.IntStream; public class Entity extends MovableObject { private final Map spriteDirectionRows; @@ -21,7 +23,7 @@ public class Entity extends MovableObject { @Override public int getAnimationSpeed() { - return 100; + return animationSpeed; } @Override @@ -32,7 +34,14 @@ public class Entity extends MovableObject { @Override public Vector2f[] getSpriteAnimationFramesPositions() { var row = spriteDirectionRows.get(faceDirection); - return new Vector2f[]{new Vector2f(0, row), new Vector2f(1, row), new Vector2f(2, row), new Vector2f(3, row)}; + var frames = spriteSheetDimension.y; + var array = new Vector2f[frames]; + + for(int column=0; column