diff --git a/.gitignore b/.gitignore index 172616ad..1773d9fe 100644 --- a/.gitignore +++ b/.gitignore @@ -15,5 +15,10 @@ .classpath .project +# IntelliJ +.idea/ +*.iml +*.iws + Thumbs.db /target diff --git a/res/lighting.png b/res/lighting.png index 85e22fdc..870d6c17 100644 Binary files a/res/lighting.png and b/res/lighting.png differ diff --git a/res/lighting1.png b/res/lighting1.png deleted file mode 100644 index e83fdad6..00000000 Binary files a/res/lighting1.png and /dev/null differ diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index 254c25ac..ee85b9a4 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -47,6 +47,9 @@ public class GameData { /** Time, in milliseconds, for a hit result to fade. */ public static final int HITRESULT_FADE_TIME = 500; + /** Time, in milliseconds, for a hit circle to fade. */ + public static final int HITCIRCLE_FADE_TIME = 233; + /** Duration, in milliseconds, of a combo pop effect. */ private static final int COMBO_POP_TIME = 250; @@ -839,18 +842,23 @@ public class GameData { // hit lighting else if (Options.isHitLightingEnabled() && hitResult.result != HIT_MISS && hitResult.result != HIT_SLIDER30 && hitResult.result != HIT_SLIDER10) { - float scale = 1f + ((trackPosition - hitResult.time) / (float) HITRESULT_FADE_TIME); - Image scaledLighting = GameImage.LIGHTING.getImage().getScaledCopy(scale); - Image scaledLighting1 = GameImage.LIGHTING1.getImage().getScaledCopy(scale); - scaledLighting.setAlpha(hitResult.alpha); - scaledLighting1.setAlpha(hitResult.alpha); - - scaledLighting.draw(hitResult.x - (scaledLighting.getWidth() / 2f), - hitResult.y - (scaledLighting.getHeight() / 2f), hitResult.color); - scaledLighting1.draw(hitResult.x - (scaledLighting1.getWidth() / 2f), - hitResult.y - (scaledLighting1.getHeight() / 2f), hitResult.color); + // soon add particle system to reflect original game + Image lighting = GameImage.LIGHTING.getImage(); + lighting.setAlpha(hitResult.alpha); + lighting.drawCentered(hitResult.x, hitResult.y, hitResult.color); } + // hit animation + Image scaledHitCircle = GameImage.HITCIRCLE.getImage().getScaledCopy( + 1f + (((float)(trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME) / 2)); + scaledHitCircle.setAlpha(1f - Utils.clamp((float)(trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME, 0, 1)); + Image scaledHitCircleOverlay = GameImage.HITCIRCLE_OVERLAY.getImage().getScaledCopy( + 1f + (((float)(trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME) / 2)); + scaledHitCircleOverlay.setAlpha(1f - Utils.clamp((float) (trackPosition - hitResult.time) / HITCIRCLE_FADE_TIME, 0, 1)); + + scaledHitCircle.drawCentered(hitResult.x, hitResult.y, hitResult.color); + scaledHitCircleOverlay.drawCentered(hitResult.x, hitResult.y); + hitResult.alpha = 1 - ((float) (trackPosition - hitResult.time) / HITRESULT_FADE_TIME); } else iter.remove(); diff --git a/src/itdelatrisu/opsu/GameImage.java b/src/itdelatrisu/opsu/GameImage.java index 5f7657a1..ae4cba70 100644 --- a/src/itdelatrisu/opsu/GameImage.java +++ b/src/itdelatrisu/opsu/GameImage.java @@ -202,7 +202,6 @@ public enum GameImage { SCORE_PERCENT ("score-percent", "png"), SCORE_X ("score-x", "png"), LIGHTING ("lighting", "png"), - LIGHTING1 ("lighting1", "png"), // Game Mods MOD_EASY ("selection-mod-easy", "png", false, false),