diff --git a/core/src/sagittarius/model/Arrow.java b/core/src/sagittarius/model/Arrow.java index ed7f818..4cfce7c 100644 --- a/core/src/sagittarius/model/Arrow.java +++ b/core/src/sagittarius/model/Arrow.java @@ -41,7 +41,7 @@ public class Arrow extends EntityQuad { * @param power power given to the Arrow by the Bow. * @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()); this.velocity = new Vector2(power, 0).setAngleDeg(angle); this.acceleration = new Vector2(); @@ -49,27 +49,29 @@ public class Arrow extends EntityQuad { this.setSize(100, 4); this.force = computeForce(); this.landed = false; - - Random random = new Random(); - Pixmap pm = new Pixmap(new FileHandle("core/assets/arrow" + (random.nextInt(2) + 1) + ".png")); - - pm.setBlending(Pixmap.Blending.None); - for (int x = 0; x < pm.getWidth(); x++) { - for (int y = 0; y < pm.getHeight(); y++) { - - Color pc = new Color(); - Color.rgba8888ToColor(pc, pm.getPixel(x, y)); - - if (pc.r == 1 && pc.g == 1 && pc.b == 1) { - pc.r = getColor().r; - pc.g = getColor().g; - pc.b = getColor().b; + + if (!preview) { + Random random = new Random(); + Pixmap pm = new Pixmap(new FileHandle("core/assets/arrow" + (random.nextInt(2) + 1) + ".png")); + pm.setBlending(Pixmap.Blending.None); + for (int x = 0; x < pm.getWidth(); x++) { + for (int y = 0; y < pm.getHeight(); y++) { + + Color pc = new Color(); + Color.rgba8888ToColor(pc, pm.getPixel(x, y)); + + if (pc.r == 1 && pc.g == 1 && pc.b == 1) { + pc.r = getColor().r; + pc.g = getColor().g; + 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 ---------- @@ -215,7 +217,7 @@ public class Arrow extends EntityQuad { */ static float[] traj(float angle, float power, Player shooter, int iterations, float timeStep) { ArrayList path = new ArrayList(); - Arrow dummyArrow = new Arrow(angle, power, shooter); + Arrow dummyArrow = new Arrow(angle, power, shooter, true); for (int i = 0; i < iterations; i++) { dummyArrow.integrationVerlet(timeStep); path.add(dummyArrow.getX()); diff --git a/core/src/sagittarius/model/Bow.java b/core/src/sagittarius/model/Bow.java index cd41593..79fb42d 100644 --- a/core/src/sagittarius/model/Bow.java +++ b/core/src/sagittarius/model/Bow.java @@ -45,7 +45,7 @@ public class Bow extends Actor { } else if (pressed && power > 50) { pressed = 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.arrows.addActor(arrowShot); } else {