package vooga.rts.gui.menus;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.util.Observable;
import vooga.rts.gui.Menu;
import vooga.rts.gui.Window;
import vooga.rts.gui.buttons.MainMenuButton;
import vooga.rts.resourcemanager.ResourceManager;
import util.Location;
public class MainMenu extends Menu {
public static final String DEFAULT_BGIMAGE_LOCATION = "images/backgrounds/menu_bg.png";
public BufferedImage myBGImage;
private Dimension myDefaultButtonDimension = new Dimension(500, 122);
private Location myDefaultButtonLocation = new Location(678, 500);
private int ySpacing = 160;
private double myX;
private double myY;
private MainMenuButton mySingleButton;
private MainMenuButton myMultiButton;
public MainMenu () {
super();
myBGImage =
ResourceManager.getInstance().<BufferedImage> getFile(DEFAULT_BGIMAGE_LOCATION,
BufferedImage.class);
setBGImage(myBGImage);
mySingleButton =
new MainMenuButton("Single Player", myDefaultButtonDimension,
myDefaultButtonLocation, 0);
setScaledButton(mySingleButton);
addButton(mySingleButton);
myMultiButton =
new MainMenuButton("Multi Player", myDefaultButtonDimension,
new Location(myDefaultButtonLocation.getX(),
(myDefaultButtonLocation.getY() + ySpacing)), 1);
setScaledButton(myMultiButton);
addButton(myMultiButton);
}
public void setScaledButton (MainMenuButton b) {
myX = Window.D_X;
myY = Window.D_Y;
double xFactor = myX / myBGImage.getWidth();
double yFactor = myY / myBGImage.getHeight();
b.setSize(new Dimension((int) (b.getSize().getWidth() * xFactor),
(int) (b.getSize().getHeight() * yFactor)));
b.setPos(new Location((int) (b.getPos().getX() * xFactor),
(int) (b.getPos().getY() * yFactor)));
}
@Override
public void paint (Graphics2D pen) {
super.paint(pen);
pen.setFont(new Font("Helvetica", Font.BOLD, 100));
pen.setColor(Color.white);
pen.drawString("The Vooga RTS Game", 150, 150);
}
@Override
public void update(Observable o, Object a) {
if (o instanceof MainMenuButton) {
setChanged();
int s = (Integer) a;
notifyObservers(s);
}
}
}