feat: added Bow's aimAssist
This commit is contained in:
parent
9f58fa4a33
commit
64b487f80d
|
@ -1,5 +1,7 @@
|
||||||
package bzh.fainsin.sagittarius;
|
package bzh.fainsin.sagittarius;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||||
|
@ -51,7 +53,7 @@ class Arrow extends Entity {
|
||||||
if (!this.hasLanded()) {
|
if (!this.hasLanded()) {
|
||||||
integrationVerlet(deltaTime);
|
integrationVerlet(deltaTime);
|
||||||
this.TTL -= deltaTime;
|
this.TTL -= deltaTime;
|
||||||
this.angle = this.velocity.angleRad();
|
this.angle = this.velocity.angleDeg();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,6 +63,8 @@ class Arrow extends Entity {
|
||||||
|
|
||||||
// TODO : vectorialiser
|
// TODO : vectorialiser
|
||||||
|
|
||||||
|
// System.out.println(deltaTime);
|
||||||
|
|
||||||
this.acceleration = this.force.cpy();
|
this.acceleration = this.force.cpy();
|
||||||
|
|
||||||
this.position.x += deltaTime * ( this.velocity.x + deltaTime * this.acceleration.x / 2 );
|
this.position.x += deltaTime * ( this.velocity.x + deltaTime * this.acceleration.x / 2 );
|
||||||
|
@ -73,7 +77,7 @@ class Arrow extends Entity {
|
||||||
}
|
}
|
||||||
|
|
||||||
void render(ShapeRenderer shapeRenderer) {
|
void render(ShapeRenderer shapeRenderer) {
|
||||||
Vector2 tail = new Vector2(-this.length, 0).rotateRad(this.angle).add(this.position);
|
Vector2 tail = new Vector2(-this.length, 0).rotateDeg(this.angle).add(this.position);
|
||||||
shapeRenderer.line(this.position, tail);
|
shapeRenderer.line(this.position, tail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,4 +94,27 @@ class Arrow extends Entity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ---------- STATIC METHODs ----------
|
||||||
|
|
||||||
|
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);
|
||||||
|
for (int i = 0; i < iterations; i++) {
|
||||||
|
if (dummyArrow.hasLanded()) { break; }
|
||||||
|
dummyArrow.integrationVerlet(timeStep);
|
||||||
|
path.add(dummyArrow.position.x);
|
||||||
|
path.add(dummyArrow.position.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO : optimize, lots of useless stuff
|
||||||
|
|
||||||
|
final float[] arr = new float[path.size()]; // TODO : min with 2, Exception in thread "main" java.lang.IllegalArgumentException: Polylines must contain at least 2 points.
|
||||||
|
int index = 0;
|
||||||
|
for (final Float value: path) {
|
||||||
|
arr[index++] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,10 @@ class Bow {
|
||||||
public void render(ShapeRenderer shapeRenderer) {
|
public void render(ShapeRenderer shapeRenderer) {
|
||||||
if (pressed) {
|
if (pressed) {
|
||||||
shapeRenderer.line(this.anchor, SagittariusGame.worldCursor);
|
shapeRenderer.line(this.anchor, SagittariusGame.worldCursor);
|
||||||
//shapeRenderer.polyline(traj);
|
float[] traj = Arrow.traj(angle, power, shooter, 250, 0.05f);
|
||||||
|
if (traj.length > 2) {
|
||||||
|
shapeRenderer.polyline(traj);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,6 +93,9 @@ class GameScreen extends ScreenAdapter {
|
||||||
arrow.render(shapeRenderer);
|
arrow.render(shapeRenderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// float[] vertices = {100, 100, 200, 200, 1000, 500};
|
||||||
|
// shapeRenderer.polyline(vertices);
|
||||||
|
|
||||||
shapeRenderer.end();
|
shapeRenderer.end();
|
||||||
|
|
||||||
// HUD
|
// HUD
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
package bzh.fainsin.sagittarius;
|
package bzh.fainsin.sagittarius;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.Input.Buttons;
|
|
||||||
import com.badlogic.gdx.Input.Keys;
|
import com.badlogic.gdx.Input.Keys;
|
||||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
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.MathUtils;
|
import com.badlogic.gdx.math.MathUtils;
|
||||||
import com.badlogic.gdx.math.Vector2;
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Button;
|
|
||||||
|
|
||||||
class Player extends Entity {
|
class Player extends Entity {
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue