fix: disabled pixmapping for arrow trajectory prediction
This commit is contained in:
parent
61924b85b6
commit
e047063e7e
|
@ -41,7 +41,7 @@ public class Arrow extends EntityQuad {
|
||||||
* @param power power given to the Arrow by the Bow.
|
* @param power power given to the Arrow by the Bow.
|
||||||
* @param shooter Bow's shooter.
|
* @param shooter Bow's shooter.
|
||||||
*/
|
*/
|
||||||
Arrow(float angle, float power, Player shooter) {
|
Arrow(float angle, float power, Player shooter, boolean preview) {
|
||||||
super(0, 1, shooter.getColor(), shooter.getPosition());
|
super(0, 1, shooter.getColor(), shooter.getPosition());
|
||||||
this.velocity = new Vector2(power, 0).setAngleDeg(angle);
|
this.velocity = new Vector2(power, 0).setAngleDeg(angle);
|
||||||
this.acceleration = new Vector2();
|
this.acceleration = new Vector2();
|
||||||
|
@ -49,27 +49,29 @@ public class Arrow extends EntityQuad {
|
||||||
this.setSize(100, 4);
|
this.setSize(100, 4);
|
||||||
this.force = computeForce();
|
this.force = computeForce();
|
||||||
this.landed = false;
|
this.landed = false;
|
||||||
|
|
||||||
Random random = new Random();
|
if (!preview) {
|
||||||
Pixmap pm = new Pixmap(new FileHandle("core/assets/arrow" + (random.nextInt(2) + 1) + ".png"));
|
Random random = new Random();
|
||||||
|
Pixmap pm = new Pixmap(new FileHandle("core/assets/arrow" + (random.nextInt(2) + 1) + ".png"));
|
||||||
pm.setBlending(Pixmap.Blending.None);
|
pm.setBlending(Pixmap.Blending.None);
|
||||||
for (int x = 0; x < pm.getWidth(); x++) {
|
for (int x = 0; x < pm.getWidth(); x++) {
|
||||||
for (int y = 0; y < pm.getHeight(); y++) {
|
for (int y = 0; y < pm.getHeight(); y++) {
|
||||||
|
|
||||||
Color pc = new Color();
|
Color pc = new Color();
|
||||||
Color.rgba8888ToColor(pc, pm.getPixel(x, y));
|
Color.rgba8888ToColor(pc, pm.getPixel(x, y));
|
||||||
|
|
||||||
if (pc.r == 1 && pc.g == 1 && pc.b == 1) {
|
if (pc.r == 1 && pc.g == 1 && pc.b == 1) {
|
||||||
pc.r = getColor().r;
|
pc.r = getColor().r;
|
||||||
pc.g = getColor().g;
|
pc.g = getColor().g;
|
||||||
pc.b = getColor().b;
|
pc.b = getColor().b;
|
||||||
|
}
|
||||||
|
|
||||||
|
pm.drawPixel(x, y, Color.rgba8888(pc));
|
||||||
}
|
}
|
||||||
|
|
||||||
pm.drawPixel(x, y, Color.rgba8888(pc));
|
|
||||||
}
|
}
|
||||||
|
texture = new Texture(pm);
|
||||||
}
|
}
|
||||||
texture = new Texture(pm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------- METHODs ----------
|
// ---------- METHODs ----------
|
||||||
|
@ -215,7 +217,7 @@ public class Arrow extends EntityQuad {
|
||||||
*/
|
*/
|
||||||
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>();
|
||||||
Arrow dummyArrow = new Arrow(angle, power, shooter);
|
Arrow dummyArrow = new Arrow(angle, power, shooter, true);
|
||||||
for (int i = 0; i < iterations; i++) {
|
for (int i = 0; i < iterations; i++) {
|
||||||
dummyArrow.integrationVerlet(timeStep);
|
dummyArrow.integrationVerlet(timeStep);
|
||||||
path.add(dummyArrow.getX());
|
path.add(dummyArrow.getX());
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class Bow extends Actor {
|
||||||
} else if (pressed && power > 50) {
|
} else if (pressed && power > 50) {
|
||||||
pressed = false;
|
pressed = false;
|
||||||
GameScreen.playerCurrent.setActive(false);
|
GameScreen.playerCurrent.setActive(false);
|
||||||
Arrow arrowShot = new Arrow(angle, power, GameScreen.playerCurrent);
|
Arrow arrowShot = new Arrow(angle, power, GameScreen.playerCurrent, false);
|
||||||
GameScreen.setFocus(arrowShot); // do not use constructor 2 times
|
GameScreen.setFocus(arrowShot); // do not use constructor 2 times
|
||||||
GameScreen.arrows.addActor(arrowShot);
|
GameScreen.arrows.addActor(arrowShot);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue