main menu logo tweaks

Minor changes to the logo scale
Pulsing effect:
  let the ghost logo expand
  also animate the initial shrink
This commit is contained in:
yugecin 2018-06-26 21:49:41 +02:00
parent 11fd501a1e
commit 8d7b7ef567
No known key found for this signature in database
GPG Key ID: 2C5AC035A7068E44
3 changed files with 21 additions and 16 deletions

View File

@ -18,7 +18,6 @@
package itdelatrisu.opsu; package itdelatrisu.opsu;
import itdelatrisu.opsu.ui.Colors;
import itdelatrisu.opsu.ui.Fonts; import itdelatrisu.opsu.ui.Fonts;
import java.io.File; import java.io.File;
@ -300,13 +299,13 @@ public enum GameImage {
MENU_LOGO ("logo2", "png", false, true) { MENU_LOGO ("logo2", "png", false, true) {
@Override @Override
protected Image process_sub(Image img, int w, int h) { protected Image process_sub(Image img, int w, int h) {
return img.getScaledCopy(0.8f); return img.getScaledCopy(0.75f);
} }
}, },
MENU_LOGO_PIECE ("logo2piece2", "png", false, true) { MENU_LOGO_PIECE ("logo2piece2", "png", false, true) {
@Override @Override
protected Image process_sub(Image img, int w, int h) { protected Image process_sub(Image img, int w, int h) {
return img.getScaledCopy(0.8f); return img.getScaledCopy(0.75f);
} }
}, },
MENU_PLAY ("menu-play2", "png", false, false) { MENU_PLAY ("menu-play2", "png", false, false) {

View File

@ -145,11 +145,11 @@ public class MainMenu extends BaseOpsuState {
logo.setHoverAnimationDuration(logoAnimationDuration); logo.setHoverAnimationDuration(logoAnimationDuration);
playButton.setHoverAnimationDuration(logoAnimationDuration); playButton.setHoverAnimationDuration(logoAnimationDuration);
exitButton.setHoverAnimationDuration(logoAnimationDuration); exitButton.setHoverAnimationDuration(logoAnimationDuration);
final AnimationEquation logoAnimationEquation = AnimationEquation.IN_OUT_BACK; final AnimationEquation logoAnimationEquation = AnimationEquation.IN_OUT_EXPO;
logo.setHoverAnimationEquation(logoAnimationEquation); logo.setHoverAnimationEquation(logoAnimationEquation);
playButton.setHoverAnimationEquation(logoAnimationEquation); playButton.setHoverAnimationEquation(logoAnimationEquation);
exitButton.setHoverAnimationEquation(logoAnimationEquation); exitButton.setHoverAnimationEquation(logoAnimationEquation);
final float logoHoverScale = 1.08f; final float logoHoverScale = 1.096f;
logo.setHoverExpand(logoHoverScale); logo.setHoverExpand(logoHoverScale);
playButton.setHoverExpand(logoHoverScale); playButton.setHoverExpand(logoHoverScale);
exitButton.setHoverExpand(logoHoverScale); exitButton.setHoverExpand(logoHoverScale);
@ -265,15 +265,21 @@ public class MainMenu extends BaseOpsuState {
boolean renderPiece = position != null; boolean renderPiece = position != null;
if (position == null) { if (position == null) {
position = System.currentTimeMillis() % 1000 / 1000f; position = System.currentTimeMillis() % 1000 / 1000f;
if (position < 0.05f) {
position = 1f - AnimationEquation.IN_CUBIC.calc(position / 0.05f);
} else {
position = (position - 0.05f) / 0.95f;
} }
float scale = 1f + position * 0.05f; }
logo.draw(color, scale); logo.draw(color, 0.9726f + position * 0.0274f);
final float hoverScale = logo.getCurrentHoverExpandValue();
if (renderPiece) { if (renderPiece) {
Image piece = GameImage.MENU_LOGO_PIECE.getImage().getScaledCopy(logo.getLastScale()); Image piece = GameImage.MENU_LOGO_PIECE.getImage();
piece = piece.getScaledCopy(hoverScale);
piece.rotate(position * 360); piece.rotate(position * 360);
piece.drawCentered(logo.getX(), logo.getY(), color); piece.drawCentered(logo.getX(), logo.getY(), color);
} }
float ghostScale = logo.getLastScale() / scale * 1.05f; final float ghostScale = hoverScale * 1.0186f - position * 0.0186f;
Image ghostLogo = GameImage.MENU_LOGO.getImage().getScaledCopy(ghostScale); Image ghostLogo = GameImage.MENU_LOGO.getImage().getScaledCopy(ghostScale);
ghostLogo.setAlpha(0.25f); ghostLogo.setAlpha(0.25f);
ghostLogo.drawCentered(logo.getX(), logo.getY(), color); ghostLogo.drawCentered(logo.getX(), logo.getY(), color);

View File

@ -98,9 +98,6 @@ public class MenuButton {
/** The default max rotation angle of the button. */ /** The default max rotation angle of the button. */
private static final float DEFAULT_ANGLE_MAX = 30f; private static final float DEFAULT_ANGLE_MAX = 30f;
/** The last scale at which the button was drawn. */
private float lastScale = 1f;
/** /**
* Creates a new button from an Image. * Creates a new button from an Image.
* @param img the image * @param img the image
@ -170,9 +167,14 @@ public class MenuButton {
public float getY() { return y; } public float getY() { return y; }
/** /**
* Returns the last scale at which the button was drawn. * Returns the scale multiplier, from the hover effect, used to draw the button.
*/ */
public float getLastScale() { return lastScale; } public float getCurrentHoverExpandValue() {
if ((hoverEffect & EFFECT_EXPAND) == 0) {
return 1f;
}
return scale.getValue();
}
/** /**
* Sets text to draw in the middle of the button. * Sets text to draw in the middle of the button.
@ -229,7 +231,6 @@ public class MenuButton {
xScaleOffset = image.getWidth() / 2f - xRadius; xScaleOffset = image.getWidth() / 2f - xRadius;
yScaleOffset = image.getHeight() / 2f - yRadius; yScaleOffset = image.getHeight() / 2f - yRadius;
} }
lastScale = scaleOverride;
if (hoverEffect == 0) if (hoverEffect == 0)
image.draw(x - xRadius, y - yRadius, filter); image.draw(x - xRadius, y - yRadius, filter);
else { else {
@ -243,7 +244,6 @@ public class MenuButton {
xScaleOffset = image.getWidth() / 2f - xRadius; xScaleOffset = image.getWidth() / 2f - xRadius;
yScaleOffset = image.getHeight() / 2f - yRadius; yScaleOffset = image.getHeight() / 2f - yRadius;
} }
lastScale *= scale.getValue();
} }
} }
if ((hoverEffect & EFFECT_FADE) > 0) if ((hoverEffect & EFFECT_FADE) > 0)