Added methods to check for transparent pixels in images.

This is currently being used for the logo/play/exit buttons in the main menu.

Also fixed bug where mod multipliers weren't being read.

Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
Jeffrey Han
2015-02-19 15:05:55 -05:00
parent ab1a377be0
commit 80c66a98c3
10 changed files with 97 additions and 33 deletions

View File

@@ -179,12 +179,8 @@ public class ButtonMenu extends BasicGameState {
@Override
public void update(GameContainer container, int delta, int mouseX, int mouseY) {
super.update(container, delta, mouseX, mouseY);
for (GameMod mod : GameMod.values()) {
if (mod.isActive())
mod.hoverUpdate(delta, mod.getButtonX(), mod.getButtonY());
else
mod.hoverUpdate(delta, -1, -1);
}
for (GameMod mod : GameMod.values())
mod.hoverUpdate(delta, mod.isActive());
}
@Override

View File

@@ -267,9 +267,9 @@ public class MainMenu extends BasicGameState {
Utils.updateCursor(delta);
Utils.updateVolumeDisplay(delta);
int mouseX = input.getMouseX(), mouseY = input.getMouseY();
logo.hoverUpdate(delta, mouseX, mouseY);
playButton.hoverUpdate(delta, mouseX, mouseY);
exitButton.hoverUpdate(delta, mouseX, mouseY);
logo.hoverUpdate(delta, mouseX, mouseY, 0.25f);
playButton.hoverUpdate(delta, mouseX, mouseY, 0.25f);
exitButton.hoverUpdate(delta, mouseX, mouseY, 0.25f);
if (repoButton != null)
repoButton.hoverUpdate(delta, mouseX, mouseY);
downloadsButton.hoverUpdate(delta, mouseX, mouseY);
@@ -337,11 +337,11 @@ public class MainMenu extends BasicGameState {
throws SlickException {
// reset button hover states if mouse is not currently hovering over the button
int mouseX = input.getMouseX(), mouseY = input.getMouseY();
if (!logo.contains(mouseX, mouseY))
if (!logo.contains(mouseX, mouseY, 0.25f))
logo.resetHover();
if (!playButton.contains(mouseX, mouseY))
if (!playButton.contains(mouseX, mouseY, 0.25f))
playButton.resetHover();
if (!exitButton.contains(mouseX, mouseY))
if (!exitButton.contains(mouseX, mouseY, 0.25f))
exitButton.resetHover();
if (!musicPlay.contains(mouseX, mouseY))
musicPlay.resetHover();
@@ -418,7 +418,7 @@ public class MainMenu extends BasicGameState {
// start moving logo (if clicked)
else if (!logoClicked) {
if (logo.contains(x, y)) {
if (logo.contains(x, y, 0.25f)) {
logoClicked = true;
logoTimer = 0;
playButton.getImage().setAlpha(0f);
@@ -429,10 +429,10 @@ public class MainMenu extends BasicGameState {
// other button actions (if visible)
else if (logoClicked) {
if (logo.contains(x, y) || playButton.contains(x, y)) {
if (logo.contains(x, y, 0.25f) || playButton.contains(x, y, 0.25f)) {
SoundController.playSound(SoundEffect.MENUHIT);
game.enterState(Opsu.STATE_SONGMENU, new FadeOutTransition(Color.black), new FadeInTransition(Color.black));
} else if (exitButton.contains(x, y))
} else if (exitButton.contains(x, y, 0.25f))
container.exit();
}
}