show non-300 hit results next to player's name with small animations
This commit is contained in:
parent
408c162741
commit
92dc59f7b6
|
@ -26,6 +26,7 @@ import itdelatrisu.opsu.replay.Replay;
|
||||||
import itdelatrisu.opsu.replay.ReplayFrame;
|
import itdelatrisu.opsu.replay.ReplayFrame;
|
||||||
import itdelatrisu.opsu.ui.Cursor;
|
import itdelatrisu.opsu.ui.Cursor;
|
||||||
import itdelatrisu.opsu.ui.Fonts;
|
import itdelatrisu.opsu.ui.Fonts;
|
||||||
|
import itdelatrisu.opsu.ui.animations.AnimationEquation;
|
||||||
import org.newdawn.slick.Color;
|
import org.newdawn.slick.Color;
|
||||||
import org.newdawn.slick.Graphics;
|
import org.newdawn.slick.Graphics;
|
||||||
import org.newdawn.slick.Image;
|
import org.newdawn.slick.Image;
|
||||||
|
@ -138,6 +139,35 @@ public class ReplayPlayback {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int HITIMAGETIMEREXPAND = 200;
|
||||||
|
private int HITIMAGETIMERFADESTART = 500;
|
||||||
|
private int HITIMAGETIMERFADEEND = 700;
|
||||||
|
private float HITIMAGETIMERFADEDELTA = HITIMAGETIMERFADEEND - HITIMAGETIMERFADESTART;
|
||||||
|
private void showHitImage(int renderdelta, int ypos) {
|
||||||
|
if (hitImage == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
hitImageTimer += renderdelta;
|
||||||
|
if (hitImageTimer > HITIMAGETIMERFADEEND) {
|
||||||
|
hitImage = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int namewidth = Fonts.SMALLBOLD.getWidth(this.player);
|
||||||
|
Color color = new Color(1f, 1f, 1f, 1f);
|
||||||
|
if (hitImageTimer > HITIMAGETIMERFADESTART) {
|
||||||
|
color.a = (HITIMAGETIMERFADEEND - hitImageTimer) / HITIMAGETIMERFADEDELTA;
|
||||||
|
}
|
||||||
|
float scale = 1f;
|
||||||
|
float offset = 0f;
|
||||||
|
if (hitImageTimer < HITIMAGETIMEREXPAND) {
|
||||||
|
scale = AnimationEquation.OUT_EXPO.calc((float) hitImageTimer / HITIMAGETIMEREXPAND);
|
||||||
|
offset = (SQSIZE + 5f) / 2f * (1f - scale);
|
||||||
|
}
|
||||||
|
hitImage.draw(SQSIZE * 5 + namewidth + SQSIZE + offset, ypos + offset, scale, color);
|
||||||
|
}
|
||||||
|
|
||||||
public void render(Beatmap beatmap, int[] hitResultOffset, int renderdelta, Graphics g, int ypos, int time) {
|
public void render(Beatmap beatmap, int[] hitResultOffset, int renderdelta, Graphics g, int ypos, int time) {
|
||||||
if (objectIndex >= gameObjects.length) {
|
if (objectIndex >= gameObjects.length) {
|
||||||
return;
|
return;
|
||||||
|
@ -171,11 +201,8 @@ public class ReplayPlayback {
|
||||||
}
|
}
|
||||||
keydelay[i] -= renderdelta;
|
keydelay[i] -= renderdelta;
|
||||||
}
|
}
|
||||||
Fonts.SMALLBOLD.drawString(SQSIZE * 5, ypos, this.player + " " + this.objectIndex, color);
|
Fonts.SMALLBOLD.drawString(SQSIZE * 5, ypos, this.player, color);
|
||||||
int namewidth = Fonts.SMALLBOLD.getWidth(this.player);
|
showHitImage(renderdelta, ypos);
|
||||||
if (hitImage != null) {
|
|
||||||
hitImage.draw(SQSIZE * 5 + namewidth + SQSIZE * 2, ypos);
|
|
||||||
}
|
|
||||||
int y = currentFrame.getScaledY();
|
int y = currentFrame.getScaledY();
|
||||||
if (hr) {
|
if (hr) {
|
||||||
y = container.height - y;
|
y = container.height - y;
|
||||||
|
@ -233,12 +260,12 @@ public class ReplayPlayback {
|
||||||
@Override
|
@Override
|
||||||
public void sendHitResult(int time, int result, float x, float y, Color color, boolean end, HitObject hitObject, HitObjectType hitResultType, boolean expand, int repeat, Curve curve, boolean sliderHeldToEnd, boolean handleResult) {
|
public void sendHitResult(int time, int result, float x, float y, Color color, boolean end, HitObject hitObject, HitObjectType hitResultType, boolean expand, int repeat, Curve curve, boolean sliderHeldToEnd, boolean handleResult) {
|
||||||
if ((result == HIT_300)) {
|
if ((result == HIT_300)) {
|
||||||
//return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result < hitResults.length) {
|
if (result < hitResults.length) {
|
||||||
hitImageTimer = 0;
|
hitImageTimer = 0;
|
||||||
hitImage = hitResults[result].getScaledCopy(SQSIZE, SQSIZE);
|
hitImage = hitResults[result].getScaledCopy(SQSIZE + 5, SQSIZE + 5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user