diff --git a/core/src/sagittarius/model/Entity.java b/core/src/sagittarius/model/Entity.java new file mode 100644 index 0000000..ef721f5 --- /dev/null +++ b/core/src/sagittarius/model/Entity.java @@ -0,0 +1,187 @@ +package sagittarius.model; +import java.awt.Color; + +public abstract class Entity { + + // Attributs. + + /** Angle associé à l'entité. */ + protected float angle; + + /** Masse de l'entité. */ + protected float mass; + + /** Couleur de l'entité. */ + protected Color color; + + /** Position de l'entité. */ + protected Vector2 position; + + + + + // Constructeur. + + /** Créer une entité. + * @param vangle angle associé à l'entité + * @param vmass masse de l'entité + * @param vcolor couleur de l'entité + * @param vposition position de l'entité + */ + public Planet(float vangle, float vmass, Color vcolor, Vector2 vposition) { + this.angle = vangle; + this.mass = vmass; + this.color = vcolor; + this.position.setX() = vposition.getX(); + this.position.setY() = vposition.getY(); + } + + + + + // Méthodes. + + + /** Méthode abstraite. */ + protected abstract String getInfo(); + + + /** Obtenir l'angle associé à l'entité. + * @return angle associé à l'entité + */ + public float getAngle() { + return this.angle; + } + + + /** Obtenir la masse de l'entité. + * @return masse de l'entité + */ + public float getMass() { + return this.mass; + } + + + + /** Obtenir la couleur de l'entité. + * @return couleur de l'entité + */ + public Color getColor() { + return this.color; + } + + + + /** Obtenir la position de l'entité. + * @return position de l'entité + */ + public Color getPosition() { + this.position.getX(); + this.position.getY(); + } + + + + + /** Changer l'angle associé à l'entité. + * @param vangle angle associé à l'entité + */ + public void setAngle(float vangle) { + this.angle = vangle; + } + + + + /** Changer la masse de l'entité. + * @param vcolor couleur de la planète + */ + public void setMass(float vmass) { + assert (vmass > 0); + this.mass = vmass; + } + + + + /** Changer la couleur de l'entité. + * @param vcolor couleur de l'entité + */ + public void setColor(Color vcolor) { + assert (vcouleur != null); + this.color = vcolor; + } + + + /** Changer la position de l'entité. + * @param vposition position de l'entité + */ + public void setPosition(Vector2 vposition) { + this.position.setX() = vposition.getX(); + this.position.setY() = vposition.getY(); + } + + + + + + +/*** + + public void draw(Batch batch, float parentAlpha) { + super.draw(batch, parentAlpha); + if (getDebug()) { + fontDebug(batch, getInfo(), getX(), getY()); + } + } + + + /** Dessine les lignes de bord de cette entité si {@link #getDebug()} est vraie. */ +/* public void drawDebug (ShapeRenderer shapes) { + drawDebugBounds(shapes); + } + + /** Dessine un rectangle pour les limites de l'entité si {@link #getDebug()} est vraie. */ +/* protected void drawDebugBounds (ShapeRenderer shapes) { + if (!debug) return; + shapes.set(ShapeType.Line); + if (stage != null) { + shapes.setColor(stage.getDebugColor()); + shapes.rect(x, y, originX, originY, width, height, scaleX, scaleY, rotation); + } + } + + + + /** Met à jour l'entité en fonction du temps. Called each frame by {@link Stage#act(float)}. + *

+ * The default implementation calls {@link Action#act(float)} on each action and removes actions that are complete. + * @param delta Time in seconds since the last frame. */ +/* public void act (float delta) { + Array actions = this.actions; + if (actions.size == 0) return; + if (stage != null && stage.getActionsRequestRendering()) Gdx.graphics.requestRendering(); + try { + for (int i = 0; i < actions.size; i++) { + Action action = actions.get(i); + if (action.act(delta) && i < actions.size) { + Action current = actions.get(i); + int actionIndex = current == action ? i : actions.indexOf(action, true); + if (actionIndex != -1) { + actions.removeIndex(actionIndex); + action.setActor(null); + i--; + } + } + } + } catch (RuntimeException ex) { + String context = toString(); + throw new RuntimeException("Actor: " + context.substring(0, Math.min(context.length(), 128)), ex); + } + } + + + + + + + +}