Fix some little bugs
This commit is contained in:
@@ -7,10 +7,14 @@ import org.joml.Vector2f;
|
|||||||
import org.joml.Vector2i;
|
import org.joml.Vector2i;
|
||||||
|
|
||||||
public abstract class AnimationableObject extends RenderableObject {
|
public abstract class AnimationableObject extends RenderableObject {
|
||||||
|
protected final Vector2i spriteSheetDimension;
|
||||||
|
|
||||||
public AnimationableObject(Mesh mesh, Material material, Vector2i spriteSheetDimension) {
|
public AnimationableObject(Mesh mesh, Material material, Vector2i spriteSheetDimension) {
|
||||||
super(mesh);
|
super(mesh);
|
||||||
|
this.spriteSheetDimension = spriteSheetDimension;
|
||||||
|
|
||||||
setMaterial(material);
|
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
|
// Returns time in ms between frames
|
||||||
|
|||||||
@@ -24,6 +24,6 @@ public class DefaultEntityManager implements EntityManager {
|
|||||||
var dimension = configuration.getDimension().asVector();
|
var dimension = configuration.getDimension().asVector();
|
||||||
var spriteWidth = texture.getWidth() / (float) dimension.y;
|
var spriteWidth = texture.getWidth() / (float) dimension.y;
|
||||||
var spriteHeight = texture.getHeight() / (float) dimension.x;
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.Direction;
|
||||||
import com.bartlomiejpluta.base.core.world.movement.MovableObject;
|
import com.bartlomiejpluta.base.core.world.movement.MovableObject;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.checkerframework.common.value.qual.IntRange;
|
||||||
import org.joml.Vector2f;
|
import org.joml.Vector2f;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
public class Entity extends MovableObject {
|
public class Entity extends MovableObject {
|
||||||
private final Map<Direction, Integer> spriteDirectionRows;
|
private final Map<Direction, Integer> spriteDirectionRows;
|
||||||
@@ -21,7 +23,7 @@ public class Entity extends MovableObject {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAnimationSpeed() {
|
public int getAnimationSpeed() {
|
||||||
return 100;
|
return animationSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -32,7 +34,14 @@ public class Entity extends MovableObject {
|
|||||||
@Override
|
@Override
|
||||||
public Vector2f[] getSpriteAnimationFramesPositions() {
|
public Vector2f[] getSpriteAnimationFramesPositions() {
|
||||||
var row = spriteDirectionRows.get(faceDirection);
|
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
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user