diff --git a/core/assets/arrow0.png b/core/assets/arrow0-0.png similarity index 100% rename from core/assets/arrow0.png rename to core/assets/arrow0-0.png diff --git a/core/assets/arrow0-1.png b/core/assets/arrow0-1.png new file mode 100644 index 0000000..c3efdde Binary files /dev/null and b/core/assets/arrow0-1.png differ diff --git a/core/assets/arrow0-2.png b/core/assets/arrow0-2.png new file mode 100644 index 0000000..51c1251 Binary files /dev/null and b/core/assets/arrow0-2.png differ diff --git a/core/assets/arrow0-3.png b/core/assets/arrow0-3.png new file mode 100644 index 0000000..726a464 Binary files /dev/null and b/core/assets/arrow0-3.png differ diff --git a/core/assets/arrow1.png b/core/assets/arrow1-0.png similarity index 100% rename from core/assets/arrow1.png rename to core/assets/arrow1-0.png diff --git a/core/assets/arrow2.png b/core/assets/arrow2-0.png similarity index 100% rename from core/assets/arrow2.png rename to core/assets/arrow2-0.png diff --git a/core/src/sagittarius/model/Arrow.java b/core/src/sagittarius/model/Arrow.java index c112e9c..a790b21 100644 --- a/core/src/sagittarius/model/Arrow.java +++ b/core/src/sagittarius/model/Arrow.java @@ -1,5 +1,7 @@ package sagittarius.model; +import java.util.ArrayList; + import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Pixmap; @@ -28,7 +30,7 @@ public class Arrow extends EntityQuad { private Planet crash; private Vector2 offset; - private Texture texture; + private ArrayList texture; // ---------- CONSTRUCTORs ---------- @@ -49,24 +51,35 @@ public class Arrow extends EntityQuad { this.landed = false; if (!preview) { - Pixmap pm = new Pixmap(new FileHandle("core/assets/arrow" + MathUtils.random(2) + ".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; + texture = new ArrayList<>(); + String path = "core/assets/arrow" + MathUtils.random(0); + + int i = 0; + while (true) { + try { + Pixmap pm = new Pixmap(new FileHandle(path + "-" + i + ".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.add(new Texture(pm)); + i++; + } catch (com.badlogic.gdx.utils.GdxRuntimeException e) { + break; } } - texture = new Texture(pm); } } @@ -108,8 +121,9 @@ public class Arrow extends EntityQuad { @Override public void draw(Batch batch, float parentAlpha) { - batch.draw(texture, getPosition().x - getOriginX(), getPosition().y - getWidth()/2, getOriginX(), getWidth()/2, getWidth(), getWidth(), - 1, 1, getRotation(), 0, 0, texture.getWidth(), texture.getHeight(), false, false); + int i = (int) (TTL * 3) % 4; + batch.draw(texture.get(i), getPosition().x - getOriginX(), getPosition().y - getWidth()/2, getOriginX(), getWidth()/2, getWidth(), getWidth(), + 1, 1, getRotation(), 0, 0, texture.get(i).getWidth(), texture.get(i).getHeight(), false, false); super.draw(batch, parentAlpha); }