I'm trying to make main menu for my game and I dont know how to make my buttons to work.
I'm using Slic2D
and LWJGL
libraries
My GameMenu Class:
package lt.CobaltPlanet.nelixus.state;
import org.newdawn.slick.*;
import org.newdawn.slick.state.*;
public class GameMenu extends BasicGameState{
Image Backgruond,Game_Title;
Image play,play_hover,play_pressed;
Image option,option_hover,option_pressed;
Image quit,quit_hover,quit_pressed;
public GameMenu(int state){
}
public void init(GameContainer gamecontainer1, StateBasedGame statebasedgame1) throws SlickException{
Game_Title = new Image("res/Game_Title.png");
Backgruond = new Image("res/BG.png");
play = new Image("res/Main_menu_buttons/play.png");
play_hover = new Image("res/Main_menu_buttons/play_hover.png");
play_pressed = new Image("res/Main_menu_buttons/play_pressed.png");
quit = new Image("res/Main_menu_buttons/quit.png");
quit_hover = new Image("res/Main_menu_buttons/quit_hover.png");
quit_pressed = new Image("res/Main_menu_buttons/quit_pressed.png");
option = new Image("res/Main_menu_buttons/options.png");
option_hover = new Image("res/Main_menu_buttons/options_hover.png");
option_pressed = new Image("res/Main_menu_buttons/options_pressed.png");
}
public void render(GameContainer gamecontainer1, StateBasedGame statebasedgame1, Graphics g1) throws SlickException{
Backgruond.draw(0,0);
play.draw(205,206);
option.draw(205,286);
quit.draw(205, 366);
Game_Title.draw(0,-100);
//Mouse Position
g1.drawString(mousePos, 10, 25);
}
public void update(GameContainer gamecontainer1, StateBasedGame statebasedgame1, int delta1) throws SlickException{
}
public int getID(){
return 1;
}
}
Have a look at this and this. You want the mouse position:
And check whether the mouse was clicked:
The use Slick's
Rectangle.contains(float x, float y)
to see if the point is in the hitbox for your button. Let's assume you have a button with a Slick rectangle set up:Update:
This also draws the hover image.
Update II:
This is your code, I added the functionality for the play button. Now you should be able to do the rest by yourself.