feat: minor modifications
This commit is contained in:
parent
7817353e15
commit
a18d8cfaf7
16
README.md
16
README.md
|
@ -6,7 +6,7 @@
|
||||||
A turn based game in which players kill each others using bows, arrows and GRAVITY !
|
A turn based game in which players kill each others using bows, arrows and GRAVITY !
|
||||||
|
|
||||||
## Built with
|
## Built with
|
||||||
* [openJDK 15](https://openjdk.java.net/projects/jdk/15/)
|
* [openJDK 8](https://openjdk.java.net/projects/jdk/8/)
|
||||||
* [libGDX](https://libgdx.com/)
|
* [libGDX](https://libgdx.com/)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
@ -26,14 +26,16 @@ To export the game to a .jar file:
|
||||||
The resulting .jar file should be in `desktop/build/libs/`
|
The resulting .jar file should be in `desktop/build/libs/`
|
||||||
|
|
||||||
## TODO LIST
|
## TODO LIST
|
||||||
* create BaseActor to concatenate code
|
* generate random map (with parameters)
|
||||||
* player turn
|
|
||||||
* kill player
|
|
||||||
* move freely camera
|
* move freely camera
|
||||||
* lerp camera arrow
|
* faire des textures (+ background)
|
||||||
* menus test
|
* particules de flèche, quand un joueur meurt...
|
||||||
|
* faire le gestionnaire de keybinds
|
||||||
|
* faire des sons et musique
|
||||||
|
* astéroïdes
|
||||||
|
* bonus/gadgets
|
||||||
* améliorer trajectoires arrows en simulant tout n'univers
|
* améliorer trajectoires arrows en simulant tout n'univers
|
||||||
* rotating planets and moons (on themselves)
|
* petites phrases vision
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
Please use [conventionnal commits](https://www.conventionalcommits.org/).
|
Please use [conventionnal commits](https://www.conventionalcommits.org/).
|
||||||
|
|
|
@ -146,7 +146,7 @@ public class Arrow extends EntityQuad {
|
||||||
private void verifyHitting() {
|
private void verifyHitting() {
|
||||||
for (Actor actor : GameScreen.players.getChildren()) {
|
for (Actor actor : GameScreen.players.getChildren()) {
|
||||||
Player player = (Player) actor;
|
Player player = (Player) actor;
|
||||||
if (player == GameScreen.playerCurrent && TTL > 19.5) break;
|
if (player == GameScreen.playerCurrent && TTL > 19.5) continue;
|
||||||
if (Intersector.overlapConvexPolygons(player.hitbox, this.hitbox)) {
|
if (Intersector.overlapConvexPolygons(player.hitbox, this.hitbox)) {
|
||||||
landed = true;
|
landed = true;
|
||||||
GameScreen.removePlayer(player);
|
GameScreen.removePlayer(player);
|
||||||
|
@ -158,10 +158,11 @@ public class Arrow extends EntityQuad {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasHit() {
|
private boolean hasHit() { // doesn't work
|
||||||
for (Actor actor : GameScreen.players.getChildren()) {
|
for (Actor actor : GameScreen.players.getChildren()) {
|
||||||
Player player = (Player) actor;
|
Player player = (Player) actor;
|
||||||
if (TTL < 19 && Intersector.overlapConvexPolygons(player.hitbox, this.hitbox)) {
|
if (player == GameScreen.playerCurrent) continue;
|
||||||
|
if (player.hitbox.contains(this.getPosition())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -181,16 +182,16 @@ public class Arrow extends EntityQuad {
|
||||||
Arrow dummyArrow = new Arrow(angle, power, shooter);
|
Arrow dummyArrow = new Arrow(angle, power, shooter);
|
||||||
for (int i = 0; i < iterations; i++) {
|
for (int i = 0; i < iterations; i++) {
|
||||||
dummyArrow.integrationVerlet(timeStep);
|
dummyArrow.integrationVerlet(timeStep);
|
||||||
if (dummyArrow.hasLanded() || dummyArrow.hasHit() ) { break; }
|
|
||||||
path.add(dummyArrow.getX());
|
path.add(dummyArrow.getX());
|
||||||
path.add(dummyArrow.getY());
|
path.add(dummyArrow.getY());
|
||||||
|
if ( dummyArrow.hasLanded() || dummyArrow.hasHit() ) { break; }
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO : optimize, lots of useless stuff + change name
|
// TODO : optimize, lots of useless stuff + change name
|
||||||
// or ignore and use adapters
|
// or ignore and use adapters
|
||||||
|
|
||||||
final float[] arr = new float[path.size()]; // utiliser le count de la fonction, faire tab size iteration*2, et draw avec count
|
final float[] arr = new float[path.size()]; // utiliser le count de la fonction, faire tab size iteration*2, et draw avec count
|
||||||
int index = 0;
|
int index = 0; // TODO: créer objet Trajectory, avec un float[iteration*2] et un actualSize;
|
||||||
for (final Float value: path) {
|
for (final Float value: path) {
|
||||||
arr[index++] = value;
|
arr[index++] = value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class Bow extends Actor {
|
||||||
if (power > 50) shapes.setColor(Color.RED);
|
if (power > 50) shapes.setColor(Color.RED);
|
||||||
shapes.line(this.anchor, GameScreen.worldCursor);
|
shapes.line(this.anchor, GameScreen.worldCursor);
|
||||||
if (aimAssist) {
|
if (aimAssist) {
|
||||||
float[] traj = Arrow.traj(angle, power, GameScreen.playerCurrent, 400, 0.05f);
|
float[] traj = Arrow.traj(angle, power, GameScreen.playerCurrent, 500, 0.03f);
|
||||||
if (traj.length > 2) {
|
if (traj.length > 2) {
|
||||||
shapes.polyline(traj);
|
shapes.polyline(traj);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
package sagittarius.view;
|
package sagittarius.view;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.Input.Buttons;
|
import com.badlogic.gdx.InputProcessor;
|
||||||
|
import com.badlogic.gdx.Input.Keys;
|
||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
import com.badlogic.gdx.graphics.OrthographicCamera;
|
import com.badlogic.gdx.graphics.OrthographicCamera;
|
||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||||
|
import com.badlogic.gdx.math.MathUtils;
|
||||||
import com.badlogic.gdx.math.Vector2;
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import com.badlogic.gdx.math.Vector3;
|
import com.badlogic.gdx.math.Vector3;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Group;
|
import com.badlogic.gdx.scenes.scene2d.Group;
|
||||||
|
@ -12,7 +14,7 @@ import com.badlogic.gdx.scenes.scene2d.Group;
|
||||||
import sagittarius.SagittariusGame;
|
import sagittarius.SagittariusGame;
|
||||||
import sagittarius.model.*;
|
import sagittarius.model.*;
|
||||||
|
|
||||||
public class GameScreen extends BaseScreen {
|
public class GameScreen extends BaseScreen implements InputProcessor {
|
||||||
|
|
||||||
// ---------- ATTRIBUTEs ----------
|
// ---------- ATTRIBUTEs ----------
|
||||||
|
|
||||||
|
@ -38,12 +40,15 @@ public class GameScreen extends BaseScreen {
|
||||||
private final float ispeed = 1.0f - speed;
|
private final float ispeed = 1.0f - speed;
|
||||||
private static Entity focus;
|
private static Entity focus;
|
||||||
|
|
||||||
|
// test
|
||||||
|
private OrthographicCamera gameCam;
|
||||||
|
|
||||||
// ---------- METHODs ----------
|
// ---------- METHODs ----------
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
|
|
||||||
Gdx.input.setInputProcessor(null); // on a pas de boutons
|
Gdx.input.setInputProcessor(this);
|
||||||
|
|
||||||
// planets & moons
|
// planets & moons
|
||||||
attractors = new Group();
|
attractors = new Group();
|
||||||
|
@ -102,6 +107,7 @@ public class GameScreen extends BaseScreen {
|
||||||
// camera stuff
|
// camera stuff
|
||||||
mainCameraPosition = mainStage.getCamera().position;
|
mainCameraPosition = mainStage.getCamera().position;
|
||||||
focus = playerCurrent;
|
focus = playerCurrent;
|
||||||
|
gameCam = ((OrthographicCamera) mainStage.getCamera());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,16 +122,21 @@ public class GameScreen extends BaseScreen {
|
||||||
SagittariusGame.setActiveScreen( new StartScreen() );
|
SagittariusGame.setActiveScreen( new StartScreen() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// camera zoom using keys
|
||||||
|
if (Gdx.input.isKeyPressed( Keys.DOWN)) {
|
||||||
|
gameCam.zoom += dt;
|
||||||
|
}
|
||||||
|
if (Gdx.input.isKeyPressed( Keys.UP)) {
|
||||||
|
gameCam.zoom -= dt;
|
||||||
|
}
|
||||||
|
|
||||||
|
// clamp zoom
|
||||||
|
gameCam.zoom = MathUtils.clamp(gameCam.zoom, 1f, 3f);
|
||||||
|
|
||||||
// camera follow focus
|
// camera follow focus
|
||||||
mainCameraPosition.scl(ispeed);
|
mainCameraPosition.scl(ispeed);
|
||||||
mainCameraPosition.add(new Vector3(focus.getPosition(), 0).scl(speed));
|
mainCameraPosition.add(new Vector3(focus.getPosition(), 0).scl(speed));
|
||||||
|
|
||||||
if (Gdx.input.isButtonPressed(Buttons.LEFT)) {
|
|
||||||
((OrthographicCamera) mainStage.getCamera()).zoom = 2f;
|
|
||||||
} else {
|
|
||||||
((OrthographicCamera) mainStage.getCamera()).zoom = 1f;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -164,4 +175,55 @@ public class GameScreen extends BaseScreen {
|
||||||
public static void setFocus(Entity entity) {
|
public static void setFocus(Entity entity) {
|
||||||
focus = entity;
|
focus = entity;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
// ---------- InputProcessor METHODs ----------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyDown(int keycode) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyUp(int keycode) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyTyped(char character) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean touchDragged(int screenX, int screenY, int pointer) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean mouseMoved(int screenX, int screenY) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean scrolled(float amountX, float amountY) {
|
||||||
|
gameCam.zoom += 2 * amountY * Gdx.graphics.getDeltaTime();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue