feat: created BaseActor + factorized some code
This commit is contained in:
parent
613dc0a757
commit
b279519b55
|
@ -3,7 +3,7 @@ package sagittarius;
|
||||||
import com.badlogic.gdx.Game;
|
import com.badlogic.gdx.Game;
|
||||||
|
|
||||||
import sagittarius.view.BaseScreen;
|
import sagittarius.view.BaseScreen;
|
||||||
import sagittarius.view.GameScreen;
|
import sagittarius.view.StartScreen;
|
||||||
|
|
||||||
public class SagittariusGame extends Game {
|
public class SagittariusGame extends Game {
|
||||||
|
|
||||||
|
@ -26,6 +26,6 @@ public class SagittariusGame extends Game {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void create() {
|
public void create() {
|
||||||
this.setScreen(new GameScreen());
|
this.setScreen(new StartScreen());
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2,8 +2,6 @@ package sagittarius.model;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
|
||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
|
||||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
|
||||||
import com.badlogic.gdx.math.MathUtils;
|
import com.badlogic.gdx.math.MathUtils;
|
||||||
|
@ -13,7 +11,7 @@ import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||||
import sagittarius.SagittariusGame;
|
import sagittarius.SagittariusGame;
|
||||||
import sagittarius.view.GameScreen;
|
import sagittarius.view.GameScreen;
|
||||||
|
|
||||||
public class Arrow extends Actor {
|
public class Arrow extends BaseActor {
|
||||||
|
|
||||||
// ---------- ATTRIBUTEs ----------
|
// ---------- ATTRIBUTEs ----------
|
||||||
|
|
||||||
|
@ -23,8 +21,6 @@ public class Arrow extends Actor {
|
||||||
|
|
||||||
private float TTL = 20;
|
private float TTL = 20;
|
||||||
|
|
||||||
private BitmapFont fontDebug = new BitmapFont();
|
|
||||||
|
|
||||||
// ---------- CONSTRUCTORs ----------
|
// ---------- CONSTRUCTORs ----------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,17 +56,6 @@ public class Arrow extends Actor {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void draw(Batch batch, float parentAlpha) {
|
|
||||||
super.draw(batch, parentAlpha);
|
|
||||||
fontDebug.draw(batch, "TTL=" + (int)TTL, getX(), getY() + fontDebug.getCapHeight()*5);
|
|
||||||
fontDebug.draw(batch, "pos=" + (int)getX() + "," + (int)getY(), getX(), getY() + fontDebug.getCapHeight()*4);
|
|
||||||
fontDebug.draw(batch, "speed=" + (int)velocity.x + "," + (int)velocity.y, getX(), getY() + fontDebug.getCapHeight()*3);
|
|
||||||
fontDebug.draw(batch, "accel=" + (int)acceleration.x + "," + (int)acceleration.y, getX(), getY() + fontDebug.getCapHeight()*2);
|
|
||||||
fontDebug.draw(batch, "force=" + (int)force.x + "," + (int)force.y, getX(), getY() + fontDebug.getCapHeight()*1);
|
|
||||||
fontDebug.draw(batch, "angle=" + (int)getRotation(), getX(), getY());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawDebug(ShapeRenderer shapes) {
|
public void drawDebug(ShapeRenderer shapes) {
|
||||||
super.drawDebug(shapes);
|
super.drawDebug(shapes);
|
||||||
|
@ -170,4 +155,16 @@ public class Arrow extends Actor {
|
||||||
return new Vector2( getX(), getY() );
|
return new Vector2( getX(), getY() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getInfo() {
|
||||||
|
return
|
||||||
|
"TTL=" + (int)TTL + "\n"
|
||||||
|
+ "pos=" + (int)getX() + "," + (int)getY() + "\n"
|
||||||
|
+ "speed=" + (int)velocity.x + "," + (int)velocity.y + "\n"
|
||||||
|
+ "accel=" + (int)acceleration.x + "," + (int)acceleration.y +"\n"
|
||||||
|
+ "force=" + (int)force.x + "," + (int)force.y + "\n"
|
||||||
|
+ "angle=" + (int)getRotation()
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
21
core/src/sagittarius/model/BaseActor.java
Normal file
21
core/src/sagittarius/model/BaseActor.java
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
package sagittarius.model;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||||
|
|
||||||
|
public abstract class BaseActor extends Actor {
|
||||||
|
|
||||||
|
static private BitmapFont fontDebug = new BitmapFont();
|
||||||
|
|
||||||
|
protected abstract String getInfo();
|
||||||
|
|
||||||
|
protected float angle;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(Batch batch, float parentAlpha) {
|
||||||
|
super.draw(batch, parentAlpha);
|
||||||
|
fontDebug.draw(batch, getInfo(), getX(), getY());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -43,7 +43,6 @@ class Bow extends Actor {
|
||||||
} else if (Gdx.input.isButtonPressed(Buttons.LEFT) && pressed) {
|
} else if (Gdx.input.isButtonPressed(Buttons.LEFT) && pressed) {
|
||||||
computeArrow();
|
computeArrow();
|
||||||
} else if (pressed) {
|
} else if (pressed) {
|
||||||
// Sagittarius.arrowList.add(getArrow());
|
|
||||||
GameScreen.arrows.addActor(getArrow());
|
GameScreen.arrows.addActor(getArrow());
|
||||||
pressed = false;
|
pressed = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,13 @@
|
||||||
package sagittarius.model;
|
package sagittarius.model;
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
|
||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
|
||||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||||
import com.badlogic.gdx.math.Vector2;
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
|
||||||
import com.badlogic.gdx.scenes.scene2d.Group;
|
|
||||||
|
|
||||||
public class Planet extends Actor {
|
public class Planet extends BaseActor {
|
||||||
|
|
||||||
// ---------- ATTRIBUTEs ----------
|
// ---------- ATTRIBUTEs ----------
|
||||||
|
|
||||||
private BitmapFont fontDebug = new BitmapFont();
|
|
||||||
private float radius;
|
private float radius;
|
||||||
private float mass;
|
private float mass;
|
||||||
|
|
||||||
|
@ -33,14 +28,6 @@ public class Planet extends Actor {
|
||||||
super.act(dt);
|
super.act(dt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void draw(Batch batch, float parentAlpha) {
|
|
||||||
super.draw(batch, parentAlpha);
|
|
||||||
fontDebug.draw(batch, "radius=" + (int)radius, getX(), getY() + fontDebug.getCapHeight()*2);
|
|
||||||
fontDebug.draw(batch, "mass=" + (int)mass, getX(), getY() + fontDebug.getCapHeight());
|
|
||||||
fontDebug.draw(batch, "pos=" + (int)getX() + "," + (int)getY(), getX(), getY());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawDebug(ShapeRenderer shapes) {
|
public void drawDebug(ShapeRenderer shapes) {
|
||||||
super.drawDebug(shapes);
|
super.drawDebug(shapes);
|
||||||
|
@ -63,4 +50,13 @@ public class Planet extends Actor {
|
||||||
return new Vector2( getX(), getY() );
|
return new Vector2( getX(), getY() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getInfo() {
|
||||||
|
return
|
||||||
|
"radius=" + (int)radius + "\n"
|
||||||
|
+ "mass=" + (int)mass + "\n"
|
||||||
|
+ "pos=" + (int)getX() + "," + (int)getY()
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,26 +3,22 @@ package sagittarius.model;
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.Input.Keys;
|
import com.badlogic.gdx.Input.Keys;
|
||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
|
||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
|
||||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
|
||||||
import com.badlogic.gdx.math.MathUtils;
|
import com.badlogic.gdx.math.MathUtils;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
|
||||||
|
|
||||||
public class Player extends Actor {
|
public class Player extends BaseActor {
|
||||||
|
|
||||||
// ---------- ATTRIBUTEs ----------
|
// ---------- ATTRIBUTEs ----------
|
||||||
|
|
||||||
private Planet home;
|
private Planet home;
|
||||||
private Bow bow;
|
private Bow bow;
|
||||||
private BitmapFont fontDebug = new BitmapFont();
|
|
||||||
|
|
||||||
// ---------- CONSTRUCTORs ----------
|
// ---------- CONSTRUCTORs ----------
|
||||||
|
|
||||||
public Player(Planet home, Color color) {
|
public Player(Planet home, Color color) {
|
||||||
super();
|
super();
|
||||||
this.setSize(100, 50); // TODO: fix this ? (width & height inverted)
|
this.setSize(100, 50); // TODO: fix this ? (width & height inverted) => use BaseActor.angle
|
||||||
this.setRotation(MathUtils.random(360));
|
this.setRotation(MathUtils.random(360));
|
||||||
this.setColor(color);
|
this.setColor(color);
|
||||||
this.setOrigin(0, getHeight()/2);
|
this.setOrigin(0, getHeight()/2);
|
||||||
|
@ -32,12 +28,6 @@ public class Player extends Actor {
|
||||||
|
|
||||||
// ---------- METHODs ----------
|
// ---------- METHODs ----------
|
||||||
|
|
||||||
@Override
|
|
||||||
public void draw(Batch batch, float parentAlpha) {
|
|
||||||
super.draw(batch, parentAlpha);
|
|
||||||
fontDebug.draw(batch, "pos=" + (int)getX() + "," + (int)getY() , getX(), getY());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawDebug(ShapeRenderer shapes) {
|
public void drawDebug(ShapeRenderer shapes) {
|
||||||
super.drawDebug(shapes);
|
super.drawDebug(shapes);
|
||||||
|
@ -82,4 +72,11 @@ public class Player extends Actor {
|
||||||
return this.home;
|
return this.home;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getInfo() {
|
||||||
|
return
|
||||||
|
"pos=" + (int)getX() + "," + (int)getY()
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,9 @@ public class GameScreen extends BaseScreen {
|
||||||
Player player1 = new Player(planet1, Color.WHITE);
|
Player player1 = new Player(planet1, Color.WHITE);
|
||||||
mainStage.addActor(player1);
|
mainStage.addActor(player1);
|
||||||
|
|
||||||
|
Player player2 = new Player(planet2, Color.WHITE);
|
||||||
|
mainStage.addActor(player2);
|
||||||
|
|
||||||
// arrows
|
// arrows
|
||||||
arrows = new Group();
|
arrows = new Group();
|
||||||
mainStage.addActor(arrows);
|
mainStage.addActor(arrows);
|
||||||
|
|
Loading…
Reference in a new issue