chore: added some javadoc
chore: trimmed some whitespaces
This commit is contained in:
parent
52b0b8f957
commit
b7f6b5bd69
12
README.md
Normal file
12
README.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
# TODO-list
|
||||
|
||||
0. do a better README
|
||||
1. player turn
|
||||
2. kill player
|
||||
3. move freely camera
|
||||
4. lerp camera arrow
|
||||
5. event based shit
|
||||
6. menus test
|
||||
7. améliorer trajectoires arrows en simulant tout n'univers
|
||||
8. rotating planets and moons (on themselves)
|
||||
9. faire des sous-packages, sgittarius.modele, sagittarius.view, saggitarius.control ...
|
|
@ -15,7 +15,7 @@ class Arrow extends Entity {
|
|||
private Vector2 acceleration = new Vector2();
|
||||
private Vector2 force = new Vector2();
|
||||
|
||||
float TTL = 20;
|
||||
protected float TTL = 20;
|
||||
private final float length = 100;
|
||||
|
||||
private boolean active = true;
|
||||
|
@ -24,6 +24,13 @@ class Arrow extends Entity {
|
|||
|
||||
// ---------- CONSTRUCTORs ----------
|
||||
|
||||
/**
|
||||
* Constructs an Arrow using its initial conditions.
|
||||
*
|
||||
* @param angle initial angle of the Arrow (in degrees).
|
||||
* @param power power given to the Arrow a Bow.
|
||||
* @param shooter Bow's shooter.
|
||||
*/
|
||||
Arrow(float angle, float power, Player shooter) {
|
||||
super(shooter.position, 1);
|
||||
this.velocity = new Vector2(power, 0).setAngleDeg(angle);
|
||||
|
@ -33,6 +40,10 @@ class Arrow extends Entity {
|
|||
|
||||
// ---------- METHODs ----------
|
||||
|
||||
/**
|
||||
* Computes the {@link Arrow#force} exerted on the Arrow,
|
||||
* according to the other weighted entities.
|
||||
*/
|
||||
private Vector2 computeForce() {
|
||||
Vector2 force = new Vector2();
|
||||
for (Planet attractor : SagittariusGame.planetList) {
|
||||
|
@ -48,6 +59,9 @@ class Arrow extends Entity {
|
|||
return force;
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify whether or not the Arrow contacts an Entity.
|
||||
*/
|
||||
private void verifyActivity() {
|
||||
for (Planet planet : SagittariusGame.planetList) {
|
||||
if (this.distanceTo(planet) < planet.getRadius()) {
|
||||
|
@ -65,6 +79,12 @@ class Arrow extends Entity {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the physical attributes of the Arrow,
|
||||
* must be called in the main update loop.
|
||||
*
|
||||
* @param deltaTime time elapsed between 2 frames.
|
||||
*/
|
||||
void update(float deltaTime) {
|
||||
|
||||
if (this.active) {
|
||||
|
@ -77,9 +97,15 @@ class Arrow extends Entity {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes the next position of the Arrow
|
||||
* according to its physical attributes
|
||||
* using the Verlet integration scheme.
|
||||
*
|
||||
* @param deltaTime time difference used in the integration.
|
||||
* @see <a href="https://gamedev.stackexchange.com/a/41917">https://gamedev.stackexchange.com/a/41917</a>.
|
||||
*/
|
||||
private void integrationVerlet(float deltaTime) {
|
||||
// Verlet integration
|
||||
// https://gamedev.stackexchange.com/questions/15708/how-can-i-implement-gravity/41917#41917
|
||||
|
||||
this.acceleration = this.force.cpy();
|
||||
|
||||
|
@ -92,6 +118,8 @@ class Arrow extends Entity {
|
|||
this.velocity.y += deltaTime * ( this.acceleration.y + this.force.y ) / 2;
|
||||
}
|
||||
|
||||
// ---------- GRAPHICAL METHODs ----------
|
||||
|
||||
void render(ShapeRenderer shapeRenderer) {
|
||||
Vector2 tail = new Vector2(-this.length, 0).rotateDeg(this.angle).add(this.position);
|
||||
shapeRenderer.line(this.position, tail);
|
||||
|
@ -99,7 +127,7 @@ class Arrow extends Entity {
|
|||
|
||||
void renderDebug(Batch batch, BitmapFont font) {
|
||||
|
||||
// TODO : dirty, do it in an other way
|
||||
// TODO : dirty, do it in an other way ?
|
||||
if (active) {
|
||||
font.draw(batch, "TTL = " + this.TTL, this.position.x, this.position.y + font.getCapHeight()*5);
|
||||
font.draw(batch, "pos = " + this.position, this.position.x, this.position.y + font.getCapHeight()*4);
|
||||
|
@ -112,6 +140,13 @@ class Arrow extends Entity {
|
|||
|
||||
// ---------- STATIC METHODs ----------
|
||||
|
||||
/** // TODO : pass directly an Arrow instead of 3 arguments
|
||||
* Computes the trajectory of an Arrow,
|
||||
* given its initial conditions.
|
||||
*
|
||||
* @param iterations number of iterations for the integration.
|
||||
* @param timeStep time period used for the integration.
|
||||
*/
|
||||
static float[] traj(float angle, float power, Player shooter, int iterations, float timeStep) {
|
||||
ArrayList<Float> path = new ArrayList<Float>();
|
||||
Arrow dummyArrow = new Arrow(angle, power, shooter);
|
||||
|
@ -124,6 +159,7 @@ class Arrow extends Entity {
|
|||
}
|
||||
|
||||
// TODO : optimize, lots of useless stuff + change name
|
||||
// or ignore and use adapters
|
||||
|
||||
final float[] arr = new float[path.size()];
|
||||
int index = 0;
|
||||
|
|
|
@ -26,7 +26,7 @@ class GameScreen extends ScreenAdapter {
|
|||
private BitmapFont font;
|
||||
|
||||
// camera stuff
|
||||
private Viewport viewport;
|
||||
private Viewport viewport; // TODO : useless ?
|
||||
protected static Camera camera;
|
||||
|
||||
// TODO: categorize better ?
|
||||
|
@ -132,6 +132,7 @@ class GameScreen extends ScreenAdapter {
|
|||
camera.update();
|
||||
batch.setProjectionMatrix(camera.combined);
|
||||
shapeRenderer.setProjectionMatrix(camera.combined);
|
||||
hud.resize();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package sagittarius;
|
||||
|
||||
import com.badlogic.gdx.Game;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||
|
@ -40,4 +41,8 @@ class HUD implements Disposable {
|
|||
font.dispose();
|
||||
}
|
||||
|
||||
public void resize() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ class Planet extends Entity {
|
|||
}
|
||||
|
||||
void renderDebug(Batch batch, BitmapFont font) {
|
||||
font.draw(batch, "mass = " + mass, position.x, position.y + 15);
|
||||
font.draw(batch, "x = " + (int) position.x + ", y = " + (int) position.y, position.x, position.y);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ public class SagittariusGame extends Game {
|
|||
static ArrayList<Moon> moonList;
|
||||
static ArrayList<Player> playerList;
|
||||
static ArrayList<Arrow> arrowList;
|
||||
// TODO : fix this shit, too many for loops
|
||||
|
||||
// ---------- METHODs ----------
|
||||
|
||||
|
@ -34,7 +35,7 @@ public class SagittariusGame extends Game {
|
|||
|
||||
planetList = new ArrayList<Planet>();
|
||||
planetList.add( new Planet(new Vector2(400, 400), 1000, 50) );
|
||||
planetList.add( new Planet(new Vector2(1000, 400), 1000, 100, Color.CYAN) );
|
||||
planetList.add( new Planet(new Vector2(1400, 700), 1000, 100, Color.CYAN) );
|
||||
|
||||
moonList = new ArrayList<Moon>();
|
||||
moonList.add( new Moon(planetList.get(1), 100, 20, 300) );
|
||||
|
@ -45,6 +46,11 @@ public class SagittariusGame extends Game {
|
|||
arrowList = new ArrayList<Arrow>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Main update loop.
|
||||
*
|
||||
* @param deltaTime time elapsed between 2 frames.
|
||||
*/
|
||||
static void update(float deltaTime) {
|
||||
|
||||
// cursors
|
||||
|
|
Loading…
Reference in a new issue