chore: added some javadoc
This commit is contained in:
parent
6363a6f1c5
commit
ea2575b89c
|
@ -4,6 +4,7 @@
|
||||||
A turn based game in wich players kill each others using bows, arrows and GRAVITY !
|
A turn based game in wich players kill each others using bows, arrows and GRAVITY !
|
||||||
|
|
||||||
## Built with
|
## Built with
|
||||||
|
* [openJDK 15](https://openjdk.java.net/projects/jdk/15/)
|
||||||
* [libGDX](https://libgdx.com/)
|
* [libGDX](https://libgdx.com/)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
@ -19,7 +20,7 @@ To export the game to a .jar file:
|
||||||
```bash
|
```bash
|
||||||
./gradlew desktop:dist
|
./gradlew desktop:dist
|
||||||
```
|
```
|
||||||
The resulting .jar files should be in `desktop/build/libs/`
|
The resulting .jar files should be in `*/build/libs/`
|
||||||
|
|
||||||
## TODO LIST
|
## TODO LIST
|
||||||
|
|
||||||
|
@ -43,5 +44,5 @@ Distributed under the [MIT](https://choosealicense.com/licenses/mit/) License. S
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=for-the-badge
|
[license-shield]: https://img.shields.io/badge/LICENSE-MIT-green?style=for-the-badge
|
||||||
[license-url]: https://github.com/othneildrew/Best-README-Template/blob/master/LICENSE.txt
|
[license-url]: https://git.inpt.fr/tobgang/sagittarius/-/blob/master/LICENSE
|
|
@ -43,6 +43,7 @@ class Arrow extends Entity {
|
||||||
/**
|
/**
|
||||||
* Computes the {@link Arrow#force} exerted on the Arrow,
|
* Computes the {@link Arrow#force} exerted on the Arrow,
|
||||||
* according to the other weighted entities.
|
* according to the other weighted entities.
|
||||||
|
* @return the complete force exerted on the Arrow.
|
||||||
*/
|
*/
|
||||||
private Vector2 computeForce() {
|
private Vector2 computeForce() {
|
||||||
Vector2 force = new Vector2();
|
Vector2 force = new Vector2();
|
||||||
|
@ -146,6 +147,7 @@ class Arrow extends Entity {
|
||||||
*
|
*
|
||||||
* @param iterations number of iterations for the integration.
|
* @param iterations number of iterations for the integration.
|
||||||
* @param timeStep time period used for the integration.
|
* @param timeStep time period used for the integration.
|
||||||
|
* @return an array of vertices describing the trajectory of the Arrow.
|
||||||
*/
|
*/
|
||||||
static float[] traj(float angle, float power, Player shooter, int iterations, float timeStep) {
|
static float[] traj(float angle, float power, Player shooter, int iterations, float timeStep) {
|
||||||
ArrayList<Float> path = new ArrayList<Float>();
|
ArrayList<Float> path = new ArrayList<Float>();
|
||||||
|
|
|
@ -29,6 +29,12 @@ class Bow {
|
||||||
|
|
||||||
// ---------- METHODs ----------
|
// ---------- METHODs ----------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the physical attributes of the Bow,
|
||||||
|
* wich are later used to generate an Arrow.
|
||||||
|
*
|
||||||
|
* @param deltaTime time elapsed between 2 frames.
|
||||||
|
*/
|
||||||
void update(double deltaTime) {
|
void update(double deltaTime) {
|
||||||
|
|
||||||
if (Gdx.input.isButtonJustPressed(Buttons.LEFT) && !pressed) {
|
if (Gdx.input.isButtonJustPressed(Buttons.LEFT) && !pressed) {
|
||||||
|
@ -43,10 +49,19 @@ class Bow {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates an Arrow according to the Bow's attributes.
|
||||||
|
*
|
||||||
|
* @return an Arrow.
|
||||||
|
*/
|
||||||
private Arrow getArrow() {
|
private Arrow getArrow() {
|
||||||
return new Arrow(angle, power, shooter);
|
return new Arrow(angle, power, shooter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the Bow's attributes to apply it
|
||||||
|
* to the Arrow's constructor.
|
||||||
|
*/
|
||||||
private void computeArrow() {
|
private void computeArrow() {
|
||||||
aim = this.anchor.cpy().sub(SagittariusGame.worldCursor);
|
aim = this.anchor.cpy().sub(SagittariusGame.worldCursor);
|
||||||
angle = aim.angleDeg();
|
angle = aim.angleDeg();
|
||||||
|
@ -56,11 +71,13 @@ class Bow {
|
||||||
void render(ShapeRenderer shapeRenderer) {
|
void render(ShapeRenderer shapeRenderer) {
|
||||||
if (pressed) {
|
if (pressed) {
|
||||||
shapeRenderer.line(this.anchor, SagittariusGame.worldCursor);
|
shapeRenderer.line(this.anchor, SagittariusGame.worldCursor);
|
||||||
|
if (aimAssist) {
|
||||||
float[] traj = Arrow.traj(angle, power, shooter, 400, 0.05f);
|
float[] traj = Arrow.traj(angle, power, shooter, 400, 0.05f);
|
||||||
if (traj.length > 2) {
|
if (traj.length > 2) {
|
||||||
shapeRenderer.polyline(traj);
|
shapeRenderer.polyline(traj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,9 +25,10 @@ abstract class Entity {
|
||||||
// ---------- METHODs ----------
|
// ---------- METHODs ----------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the euclidian distance to another entity
|
* Returns the euclidian distance to another entity.
|
||||||
* @param entity
|
*
|
||||||
* @return distance to entity
|
* @param entity the other Entity whose distance we wish to evaluate.
|
||||||
|
* @return distance to Entity.
|
||||||
*/
|
*/
|
||||||
float distanceTo(Entity entity) {
|
float distanceTo(Entity entity) {
|
||||||
return this.position.cpy().sub(entity.position).len();
|
return this.position.cpy().sub(entity.position).len();
|
||||||
|
|
|
@ -31,6 +31,9 @@ class Moon extends Planet {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the Planet which the Moon orbits.
|
||||||
|
*/
|
||||||
Planet getPlanet() {
|
Planet getPlanet() {
|
||||||
return this.planet;
|
return this.planet;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,9 @@ class Planet extends Entity {
|
||||||
font.draw(batch, "x = " + (int) position.x + ", y = " + (int) position.y, position.x, position.y);
|
font.draw(batch, "x = " + (int) position.x + ", y = " + (int) position.y, position.x, position.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the radius of the Planet.
|
||||||
|
*/
|
||||||
float getRadius() {
|
float getRadius() {
|
||||||
return this.radius;
|
return this.radius;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ class Player extends Entity {
|
||||||
Player(Planet home) {
|
Player(Planet home) {
|
||||||
super(home.position, 1);
|
super(home.position, 1);
|
||||||
this.home = home;
|
this.home = home;
|
||||||
this.bow = new Bow(this, false);
|
this.bow = new Bow(this, true);
|
||||||
this.angle = 45; // TODO : tmp
|
this.angle = 45; // TODO : tmp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,6 +40,12 @@ class Player extends Entity {
|
||||||
font.draw(batch, "x = " + (int) position.x + ", y = " + (int) position.y, position.x, position.y);
|
font.draw(batch, "x = " + (int) position.x + ", y = " + (int) position.y, position.x, position.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the attributes of the Player,
|
||||||
|
* must be called in the main update loop.
|
||||||
|
*
|
||||||
|
* @param deltaTime time elapsed between 2 frames.
|
||||||
|
*/
|
||||||
void update(float deltaTime) {
|
void update(float deltaTime) {
|
||||||
|
|
||||||
// TODO : do eventListening instead of polling
|
// TODO : do eventListening instead of polling
|
||||||
|
@ -57,6 +63,9 @@ class Player extends Entity {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Computes the position of the Player according to its attributes.
|
||||||
|
*/
|
||||||
void computePosition() {
|
void computePosition() {
|
||||||
Vector2 homePosition = this.home.position;
|
Vector2 homePosition = this.home.position;
|
||||||
float homeRadius = this.home.getRadius();
|
float homeRadius = this.home.getRadius();
|
||||||
|
@ -66,6 +75,9 @@ class Player extends Entity {
|
||||||
this.positionBottom.y = homePosition.y + homeRadius*MathUtils.sinDeg(angle);
|
this.positionBottom.y = homePosition.y + homeRadius*MathUtils.sinDeg(angle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the Player's home Planet.
|
||||||
|
*/
|
||||||
Planet getHome() {
|
Planet getHome() {
|
||||||
return this.home;
|
return this.home;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue