diff --git a/core/assets/arrow0-0.png b/core/assets/arrow0-0.png new file mode 100644 index 0000000..db0a872 Binary files /dev/null and b/core/assets/arrow0-0.png differ 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/arrow0.png b/core/assets/arrow0.png deleted file mode 100644 index 0e49025..0000000 Binary files a/core/assets/arrow0.png and /dev/null 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/assets/player1.png b/core/assets/player1.png index 565d80d..eeb0d54 100644 Binary files a/core/assets/player1.png and b/core/assets/player1.png differ diff --git a/core/src/sagittarius/model/Arrow.java b/core/src/sagittarius/model/Arrow.java index d3f375e..73c0f5a 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 ---------- @@ -43,30 +45,41 @@ public class Arrow extends EntityQuad { super(0, 1, shooter.getColor(), shooter.getPosition()); this.velocity = new Vector2(power, 0).setAngleDeg(angle); this.acceleration = new Vector2(); - this.setOrigin(80, 2); - this.setSize(100, 4); + this.setOrigin(40, 2); + this.setSize(50, 4); this.force = computeForce(); 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(2); + + 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 - 0.8f * getWidth(), getPosition().y - getHeight()/2 - 10, 0.8f * this.getWidth(), this.getHeight()/2 + 10, getWidth(), 20 + getHeight(), - 1, 1, getRotation(), 0, 0, texture.getWidth(), texture.getHeight(), false, false); + int i = (int) (TTL * 3) % texture.size(); + 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); } diff --git a/core/src/sagittarius/view/GameScreen.java b/core/src/sagittarius/view/GameScreen.java index 2d0c5bc..0cde633 100644 --- a/core/src/sagittarius/view/GameScreen.java +++ b/core/src/sagittarius/view/GameScreen.java @@ -48,11 +48,13 @@ public class GameScreen extends BaseScreen implements InputProcessor { @Override public void initialize() { - if (SagittariusGame.music.isPlaying()){ - SagittariusGame.music.stop(); - SagittariusGame.music = Gdx.audio.newMusic(Gdx.files.internal("core/assets/sounds/HMO-MercuryCity.mp3")); - SagittariusGame.music.setLooping(true); - SagittariusGame.music.play(); + if (!SagittariusGame.disableMusic){ + + SagittariusGame.music.stop(); + SagittariusGame.music = Gdx.audio.newMusic(Gdx.files.internal("core/assets/sounds/HMO-MercuryCity.mp3")); + SagittariusGame.music.setLooping(true); + SagittariusGame.music.play(); + } Gdx.input.setInputProcessor(this); diff --git a/core/src/sagittarius/view/ResumeScreen.java b/core/src/sagittarius/view/ResumeScreen.java index 5c93f27..3cec6c6 100644 --- a/core/src/sagittarius/view/ResumeScreen.java +++ b/core/src/sagittarius/view/ResumeScreen.java @@ -23,11 +23,12 @@ public class ResumeScreen extends BaseScreen { @Override public void initialize() { - SagittariusGame.music.stop(); - SagittariusGame.music = Gdx.audio.newMusic(Gdx.files.internal("core/assets/sounds/Metre - Concentric.mp3")); - SagittariusGame.music.setLooping(true); - SagittariusGame.music.play(); - + if (!SagittariusGame.disableMusic){ + SagittariusGame.music.stop(); + SagittariusGame.music = Gdx.audio.newMusic(Gdx.files.internal("core/assets/sounds/Metre - Concentric.mp3")); + SagittariusGame.music.setLooping(true); + SagittariusGame.music.play(); + } Gdx.input.setInputProcessor(uiStage); // Table creation @@ -62,9 +63,11 @@ public class ResumeScreen extends BaseScreen { // Deactivate music or not if (disableMusic.isChecked() && SagittariusGame.music.isPlaying()){ SagittariusGame.music.stop(); + SagittariusGame.disableMusic = true; } else if (!disableMusic.isChecked() && ! SagittariusGame.music.isPlaying()){ SagittariusGame.music.play(); + SagittariusGame.disableMusic = false; } } diff --git a/core/src/sagittarius/view/SettingsScreen.java b/core/src/sagittarius/view/SettingsScreen.java index b373568..1b71414 100644 --- a/core/src/sagittarius/view/SettingsScreen.java +++ b/core/src/sagittarius/view/SettingsScreen.java @@ -18,10 +18,12 @@ public class SettingsScreen extends BaseScreen { @Override public void initialize() { - SagittariusGame.music.stop(); - SagittariusGame.music = Gdx.audio.newMusic(Gdx.files.internal("core/assets/sounds/Metre - Concentric.mp3")); - SagittariusGame.music.setLooping(true); - SagittariusGame.music.play(); + if (!SagittariusGame.disableMusic){ + SagittariusGame.music.stop(); + SagittariusGame.music = Gdx.audio.newMusic(Gdx.files.internal("core/assets/sounds/Metre - Concentric.mp3")); + SagittariusGame.music.setLooping(true); + SagittariusGame.music.play(); + } Gdx.input.setInputProcessor(uiStage); @@ -67,10 +69,12 @@ public class SettingsScreen extends BaseScreen { // Deactivate music or not if (disableMusic.isChecked() && SagittariusGame.music.isPlaying()){ SagittariusGame.music.stop(); + SagittariusGame.disableMusic = true; } else if (!disableMusic.isChecked() && ! SagittariusGame.music.isPlaying()){ SagittariusGame.music.play(); + SagittariusGame.disableMusic = false; } }