Added fade effects for tooltips.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
Jeffrey Han
2015-03-13 02:52:18 -04:00
parent a66133c605
commit a7390f7c1d
6 changed files with 123 additions and 74 deletions

View File

@@ -173,27 +173,25 @@ public class ButtonMenu extends BasicGameState {
}
// buttons
Input input = container.getInput();
int mouseX = input.getMouseX(), mouseY = input.getMouseY();
GameMod hoverMod = null;
for (GameMod mod : GameMod.values()) {
for (GameMod mod : GameMod.values())
mod.draw();
if (hoverMod == null && mod.contains(mouseX, mouseY))
hoverMod = mod;
}
super.draw(container, game, g);
// tooltips
if (hoverMod != null && hoverMod.isImplemented())
UI.drawTooltip(g, hoverMod.getDescription(), true);
}
@Override
public void update(GameContainer container, int delta, int mouseX, int mouseY) {
super.update(container, delta, mouseX, mouseY);
for (GameMod mod : GameMod.values())
GameMod hoverMod = null;
for (GameMod mod : GameMod.values()) {
mod.hoverUpdate(delta, mod.isActive());
if (hoverMod == null && mod.contains(mouseX, mouseY))
hoverMod = mod;
}
// tooltips
if (hoverMod != null && hoverMod.isImplemented())
UI.updateTooltip(delta, hoverMod.getDescription(), true);
}
@Override

View File

@@ -248,7 +248,6 @@ public class MainMenu extends BasicGameState {
repoButton.draw();
// draw update button
boolean showUpdateButton = Updater.get().showButton();
if (Updater.get().showButton()) {
Color updateColor = null;
switch (Updater.get().getStatus()) {
@@ -294,18 +293,6 @@ public class MainMenu extends BasicGameState {
marginX, height - marginY - lineHeight);
UI.draw(g);
// tooltips
if (musicPositionBarContains(mouseX, mouseY))
UI.drawTooltip(g, "Click to seek to a specific point in the song.", false);
else if (musicPlay.contains(mouseX, mouseY))
UI.drawTooltip(g, (MusicController.isPlaying()) ? "Pause" : "Play", false);
else if (musicNext.contains(mouseX, mouseY))
UI.drawTooltip(g, "Next track", false);
else if (musicPrevious.contains(mouseX, mouseY))
UI.drawTooltip(g, "Previous track", false);
else if (showUpdateButton && updateButton.contains(mouseX, mouseY))
UI.drawTooltip(g, Updater.get().getStatus().getDescription(), true);
}
@Override
@@ -323,14 +310,13 @@ public class MainMenu extends BasicGameState {
updateButton.hoverUpdate(delta, mouseX, mouseY);
downloadsButton.hoverUpdate(delta, mouseX, mouseY);
// ensure only one button is in hover state at once
if (musicPositionBarContains(mouseX, mouseY))
mouseX = mouseY = -1;
musicPlay.hoverUpdate(delta, mouseX, mouseY);
musicPause.hoverUpdate(delta, mouseX, mouseY);
if (musicPlay.contains(mouseX, mouseY))
mouseX = mouseY = -1;
musicNext.hoverUpdate(delta, mouseX, mouseY);
musicPrevious.hoverUpdate(delta, mouseX, mouseY);
boolean noHoverUpdate = musicPositionBarContains(mouseX, mouseY);
boolean contains = musicPlay.contains(mouseX, mouseY);
musicPlay.hoverUpdate(delta, !noHoverUpdate && contains);
musicPause.hoverUpdate(delta, !noHoverUpdate && contains);
noHoverUpdate |= contains;
musicNext.hoverUpdate(delta, !noHoverUpdate && musicNext.contains(mouseX, mouseY));
musicPrevious.hoverUpdate(delta, !noHoverUpdate && musicPrevious.contains(mouseX, mouseY));
// window focus change: increase/decrease theme song volume
if (MusicController.isThemePlaying() &&
@@ -379,6 +365,18 @@ public class MainMenu extends BasicGameState {
logo.setX(container.getWidth() / 2);
}
}
// tooltips
if (musicPositionBarContains(mouseX, mouseY))
UI.updateTooltip(delta, "Click to seek to a specific point in the song.", false);
else if (musicPlay.contains(mouseX, mouseY))
UI.updateTooltip(delta, (MusicController.isPlaying()) ? "Pause" : "Play", false);
else if (musicNext.contains(mouseX, mouseY))
UI.updateTooltip(delta, "Next track", false);
else if (musicPrevious.contains(mouseX, mouseY))
UI.updateTooltip(delta, "Previous track", false);
else if (Updater.get().showButton() && updateButton.contains(mouseX, mouseY))
UI.updateTooltip(delta, Updater.get().getStatus().getDescription(), true);
}
@Override

View File

@@ -353,17 +353,13 @@ public class SongMenu extends BasicGameState {
}
// score buttons
ScoreData hoverScore = null;
if (focusScores != null) {
for (int i = 0; i < MAX_SCORE_BUTTONS; i++) {
int rank = startScore + i;
if (rank >= focusScores.length)
break;
long prevScore = (rank + 1 < focusScores.length) ? focusScores[rank + 1].score : -1;
boolean contains = ScoreData.buttonContains(mouseX, mouseY, i);
focusScores[rank].draw(g, i, rank, prevScore, contains);
if (contains)
hoverScore = focusScores[rank];
focusScores[rank].draw(g, i, rank, prevScore, ScoreData.buttonContains(mouseX, mouseY, i));
}
// scroll bar
@@ -459,10 +455,6 @@ public class SongMenu extends BasicGameState {
UI.getBackButton().draw();
UI.draw(g);
// tooltips
if (hoverScore != null)
hoverScore.drawTooltip(g);
}
@Override
@@ -575,6 +567,20 @@ public class SongMenu extends BasicGameState {
if (!isHover) {
hoverOffset = 0f;
hoverIndex = -1;
} else
return;
// tooltips
if (focusScores != null) {
for (int i = 0; i < MAX_SCORE_BUTTONS; i++) {
int rank = startScore + i;
if (rank >= focusScores.length)
break;
if (ScoreData.buttonContains(mouseX, mouseY, i)) {
UI.updateTooltip(delta, focusScores[rank].getTooltipString(), true);
break;
}
}
}
}