From 265354bf049a0d3eb8eda4b538efc5d417fe4d50 Mon Sep 17 00:00:00 2001 From: Reco1l Date: Fri, 28 Apr 2023 17:34:01 +0200 Subject: [PATCH 1/8] Cleaning comments --- src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java index 3c50dabb0..8f737805a 100644 --- a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java +++ b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java @@ -26,9 +26,7 @@ public ScoreBar(final GameObjectListener listener, final Scene scene, bg = new Sprite(0, 0, ResourceManager.getInstance().getTexture( "scorebar-bg")); bg.setScaleCenter(0, 0); - /*final int colourFrames = SkinManager.getFrames("scorebar-colour"); - colour = new AnimSprite(Utils.toRes(5), Utils.toRes(16), - "scorebar-colour-", colourFrames, colourFrames);*/ + if (ResourceManager.getInstance().isTextureLoaded("scorebar-colour-0")) { List loadedScoreBarTextures = new ArrayList<>(); for (int i = 0; i < 60; i++) { @@ -42,9 +40,6 @@ public ScoreBar(final GameObjectListener listener, final Scene scene, ResourceManager.getInstance().getTexture("scorebar-colour")); } width = colour.getWidth(); - /*for (int i = 0; i < colour.getTextureRegionCount(); i++) { - colour.setTextureRegion(i, colour.getTextureRegionAt(i).deepCopy()); - }*/ ki = ResourceManager.getInstance().isTextureLoaded("scorebar-kidanger") ? new AnimSprite(0, 0, 0, "scorebar-ki", "scorebar-kidanger", "scorebar-kidanger2") : new AnimSprite(0, 0, 0, "scorebar-ki"); @@ -70,27 +65,14 @@ public void update(final float dt) { hp = speed * dt * Math.signum(hp - lasthp) + lasthp; } - /*for (int i = 0; i < colour.getTextureRegionCount(); i++) { - colour.getTextureRegionAt(i).setWidth((int) (width * hp)); - }*/ colour.setWidth(width * hp); ki.setPosition(Utils.toRes(5) + colour.getWidth() - ki.getWidth() / 2, Utils.toRes(16) + colour.getHeight() / 2 - ki.getHeight() / 2); - //ki.setScale(hp>lasthp?1.2f:1); ki.setFrame(hp > 0.49 ? 0 : hp > 0.24 ? 1 : 2); lasthp = hp; - /*if (hp < 0.5f) { - if (hp < 0.25f) { - ki.setFrame(2); - } else { - ki.setFrame(1); - } - } else { - ki.setFrame(0); - }*/ } public void flush() { From 54fa10bd38f713ae4e35588dc516ad25597c1530 Mon Sep 17 00:00:00 2001 From: Reco1l Date: Fri, 28 Apr 2023 19:10:22 +0200 Subject: [PATCH 2/8] Fix HP bar stretching instead of clipping. --- src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java index 8f737805a..52cd80334 100644 --- a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java +++ b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java @@ -1,5 +1,6 @@ package ru.nsu.ccfit.zuev.osu.game; +import android.util.Log; import org.anddev.andengine.entity.scene.Scene; import org.anddev.andengine.entity.sprite.Sprite; @@ -7,6 +8,7 @@ import java.util.List; import ru.nsu.ccfit.zuev.osu.ResourceManager; +import ru.nsu.ccfit.zuev.osu.ToastLogger; import ru.nsu.ccfit.zuev.osu.Utils; import ru.nsu.ccfit.zuev.osu.helper.AnimSprite; import ru.nsu.ccfit.zuev.osu.scoring.StatisticV2; @@ -20,6 +22,8 @@ public class ScoreBar extends GameObject { private final float width; private float lasthp = 0; + private float mColourX; + public ScoreBar(final GameObjectListener listener, final Scene scene, final StatisticV2 stat) { this.stat = stat; @@ -27,16 +31,19 @@ public ScoreBar(final GameObjectListener listener, final Scene scene, "scorebar-bg")); bg.setScaleCenter(0, 0); + mColourX = Utils.toRes(5); + if (ResourceManager.getInstance().isTextureLoaded("scorebar-colour-0")) { List loadedScoreBarTextures = new ArrayList<>(); for (int i = 0; i < 60; i++) { if (ResourceManager.getInstance().isTextureLoaded("scorebar-colour-" + i)) loadedScoreBarTextures.add("scorebar-colour-" + i); } - colour = new AnimSprite(Utils.toRes(5), Utils.toRes(16), loadedScoreBarTextures.size(), + + colour = new AnimSprite(mColourX, Utils.toRes(16), loadedScoreBarTextures.size(), loadedScoreBarTextures.toArray(new String[loadedScoreBarTextures.size()])); } else { - colour = new Sprite(Utils.toRes(5), Utils.toRes(16), + colour = new Sprite(mColourX, Utils.toRes(16), ResourceManager.getInstance().getTexture("scorebar-colour")); } width = colour.getWidth(); @@ -65,7 +72,11 @@ public void update(final float dt) { hp = speed * dt * Math.signum(hp - lasthp) + lasthp; } - colour.setWidth(width * hp); + var texture = colour.getTextureRegion(); + var translationX = width - (width * Math.abs(hp)); + + colour.setPosition(mColourX - translationX, colour.getY()); + texture.setTexturePosition((int) -translationX, 0); ki.setPosition(Utils.toRes(5) + colour.getWidth() - ki.getWidth() / 2, Utils.toRes(16) + colour.getHeight() / 2 - ki.getHeight() / 2); From 67fa23f8b2316f8013e2f94e1bbfd824b0bda81c Mon Sep 17 00:00:00 2001 From: Reco1l Date: Fri, 28 Apr 2023 19:14:54 +0200 Subject: [PATCH 3/8] Reverting Java 11 usage --- src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java index 52cd80334..2112728a4 100644 --- a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java +++ b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.List; +import org.anddev.andengine.opengl.texture.region.TextureRegion; import ru.nsu.ccfit.zuev.osu.ResourceManager; import ru.nsu.ccfit.zuev.osu.ToastLogger; import ru.nsu.ccfit.zuev.osu.Utils; @@ -72,8 +73,8 @@ public void update(final float dt) { hp = speed * dt * Math.signum(hp - lasthp) + lasthp; } - var texture = colour.getTextureRegion(); - var translationX = width - (width * Math.abs(hp)); + TextureRegion texture = colour.getTextureRegion(); + float translationX = width - (width * Math.abs(hp)); colour.setPosition(mColourX - translationX, colour.getY()); texture.setTexturePosition((int) -translationX, 0); From a395913b75631b8cb81d65d51bb8cb4bd6044cdf Mon Sep 17 00:00:00 2001 From: Reco1l Date: Fri, 28 Apr 2023 22:16:55 +0200 Subject: [PATCH 4/8] Fix texture translation when it's an AnimSprite --- src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java index 2112728a4..275172a52 100644 --- a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java +++ b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java @@ -73,11 +73,25 @@ public void update(final float dt) { hp = speed * dt * Math.signum(hp - lasthp) + lasthp; } - TextureRegion texture = colour.getTextureRegion(); float translationX = width - (width * Math.abs(hp)); colour.setPosition(mColourX - translationX, colour.getY()); - texture.setTexturePosition((int) -translationX, 0); + + if (colour.getClass() == Sprite.class) + { + colour.getTextureRegion().setTexturePosition((int) -translationX, 0); + } + else if (colour.getClass() == AnimSprite.class) + { + AnimSprite sprite = (AnimSprite) colour; + + int i = sprite.getTextureRegionCount() - 1; + while (i >= 0) + { + sprite.getTextureRegionAt(i).setTexturePosition((int) -translationX, 0); + --i; + } + } ki.setPosition(Utils.toRes(5) + colour.getWidth() - ki.getWidth() / 2, Utils.toRes(16) + colour.getHeight() / 2 - ki.getHeight() / 2); From e54d653daeca165e9fa5b12ecab32bc198ca5cf3 Mon Sep 17 00:00:00 2001 From: Reco1l Date: Sat, 29 Apr 2023 01:42:53 +0200 Subject: [PATCH 5/8] Fix Ki being always at the right --- src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java index 275172a52..133b9e926 100644 --- a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java +++ b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java @@ -93,7 +93,7 @@ else if (colour.getClass() == AnimSprite.class) } } - ki.setPosition(Utils.toRes(5) + colour.getWidth() - ki.getWidth() / 2, + ki.setPosition(Utils.toRes(5) + colour.getX() + width - ki.getWidth() / 2, Utils.toRes(16) + colour.getHeight() / 2 - ki.getHeight() / 2); ki.setFrame(hp > 0.49 ? 0 : hp > 0.24 ? 1 From 5fe6e56e3522008ccabe08068be363a6c7b83f4a Mon Sep 17 00:00:00 2001 From: Rian8337 <52914632+Rian8337@users.noreply.github.com> Date: Sat, 29 Apr 2023 08:06:23 +0800 Subject: [PATCH 6/8] Remove redundant imports --- src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java index 133b9e926..7ca1fe754 100644 --- a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java +++ b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java @@ -1,15 +1,12 @@ package ru.nsu.ccfit.zuev.osu.game; -import android.util.Log; import org.anddev.andengine.entity.scene.Scene; import org.anddev.andengine.entity.sprite.Sprite; import java.util.ArrayList; import java.util.List; -import org.anddev.andengine.opengl.texture.region.TextureRegion; import ru.nsu.ccfit.zuev.osu.ResourceManager; -import ru.nsu.ccfit.zuev.osu.ToastLogger; import ru.nsu.ccfit.zuev.osu.Utils; import ru.nsu.ccfit.zuev.osu.helper.AnimSprite; import ru.nsu.ccfit.zuev.osu.scoring.StatisticV2; From 67d3585a818be21350bf82f222885520fb349843 Mon Sep 17 00:00:00 2001 From: Rian8337 <52914632+Rian8337@users.noreply.github.com> Date: Sat, 29 Apr 2023 08:07:39 +0800 Subject: [PATCH 7/8] Initialize `mColourX` directly --- src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java index 7ca1fe754..ee0b71e4f 100644 --- a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java +++ b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java @@ -19,8 +19,7 @@ public class ScoreBar extends GameObject { private final AnimSprite ki; private final float width; private float lasthp = 0; - - private float mColourX; + private final float mColourX = Utils.toRes(5); public ScoreBar(final GameObjectListener listener, final Scene scene, final StatisticV2 stat) { @@ -29,8 +28,6 @@ public ScoreBar(final GameObjectListener listener, final Scene scene, "scorebar-bg")); bg.setScaleCenter(0, 0); - mColourX = Utils.toRes(5); - if (ResourceManager.getInstance().isTextureLoaded("scorebar-colour-0")) { List loadedScoreBarTextures = new ArrayList<>(); for (int i = 0; i < 60; i++) { From aa6b2f31fd4e124b6cdeedd550bed0ca7ab77d0d Mon Sep 17 00:00:00 2001 From: Rian8337 <52914632+Rian8337@users.noreply.github.com> Date: Sat, 29 Apr 2023 08:14:28 +0800 Subject: [PATCH 8/8] Simplify `translationX` math --- src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java index ee0b71e4f..130870f81 100644 --- a/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java +++ b/src/ru/nsu/ccfit/zuev/osu/game/ScoreBar.java @@ -67,7 +67,7 @@ public void update(final float dt) { hp = speed * dt * Math.signum(hp - lasthp) + lasthp; } - float translationX = width - (width * Math.abs(hp)); + float translationX = width * (1 - Math.abs(hp)); colour.setPosition(mColourX - translationX, colour.getY());