Fix some little bugs

This commit is contained in:
2021-01-31 23:55:59 +01:00
parent 050fa14631
commit 212073d48a
3 changed files with 17 additions and 4 deletions

View File

@@ -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

View File

@@ -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);
}
}

View File

@@ -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<Direction, Integer> 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<frames; ++column) {
array[column] = new Vector2f(column, row);
}
return array;
}
@Override