Add basic support for Infinite and N-repeated animations

This commit is contained in:
2021-03-20 12:09:06 +01:00
parent 82d2bef569
commit a99ab3afb0
15 changed files with 239 additions and 70 deletions

View File

@@ -1,14 +1,12 @@
package com.bartlomiejpluta.base.api.game.animation;
import com.bartlomiejpluta.base.api.game.entity.Direction;
import com.bartlomiejpluta.base.api.game.entity.Movement;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
import com.bartlomiejpluta.base.api.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
import org.joml.Vector2ic;
public interface Animation extends Placeable, Renderable, Updatable {
void setStepSize(float x, float y);
Vector2ic getCoordinates();
@@ -17,17 +15,11 @@ public interface Animation extends Placeable, Renderable, Updatable {
void setCoordinates(int x, int y);
Movement prepareMovement(Direction direction);
Movement getMovement();
void setSpeed(float speed);
void setAnimationSpeed(float speed);
boolean isMoving();
Integer getRepeat();
void onAdd(ObjectLayer layer);
void setRepeat(Integer repeat);
void onRemove(ObjectLayer layer);
boolean finished();
}

View File

@@ -1,5 +1,6 @@
package com.bartlomiejpluta.base.api.game.context;
import com.bartlomiejpluta.base.api.game.animation.Animation;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.entity.Entity;
import com.bartlomiejpluta.base.api.game.gui.base.GUI;
@@ -28,6 +29,8 @@ public interface Context extends Updatable, Renderable, Disposable {
Entity createEntity(String entitySetUid);
Animation createAnimation(String animationUid);
Image getImage(String imageUid);
GUI newGUI();

View File

@@ -1,9 +1,12 @@
package com.bartlomiejpluta.base.api.game.map.layer.base;
import com.bartlomiejpluta.base.api.game.animation.Animation;
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
public interface Layer extends Renderable, Updatable {
GameMap getMap();
void pushAnimation(Animation animation);
}

View File

@@ -17,6 +17,8 @@ public interface GameMap {
Vector2fc getSize();
Vector2fc getStepSize();
TileLayer getTileLayer(int layerIndex);
ImageLayer getImageLayer(int layerIndex);