我正在实施一个小游戏(基本游戏状态),我很难用按钮导航。 我有一个类菜单,其中包含3个按钮:播放,如何播放和退出。 例如,当我单击“如何播放”按钮时,它会将我重定向到“如何玩”类。 在How To Play课程中,我只有一个按钮:返回,我想将我重定向回Menu菜单。 一切正常,但是当我点击后退按钮时它退出游戏,这是因为它与Menu的Exit按钮具有相同的坐标。 如何阻止传播? 我的代码就像:
Main Class:
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException{ // update the images on screen to create image movement illusion
Input input = gc.getInput();
mouseX = Mouse.getX();
mouseY = gc.getHeight()-Mouse.getY();
position = "*xpos: "+mouseX+" ypos:"+mouseY;
buttonsListener(input, sbg);
}
public void buttonsListener(Input input, StateBasedGame sbg) throws SlickException
{
if((mouseX>130&&mouseX<477)&&(mouseY>308&&mouseY<377))//play button
if(input.isMouseButtonDown(0))
sbg.enterState(1);
if((mouseX>130&&mouseX<477)&&(mouseY>408&&mouseY<477))//how to play button
if(input.isMouseButtonDown(0))
sbg.enterState(2);
if((mouseX>130&&mouseX<477)&&(mouseY>508&&mouseY<577))//exit button
if(input.isMouseButtonDown(0))
System.exit(0);
}
和
HowToPlay Class:
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException{
Input input = gc.getInput();
mouseX = Mouse.getX();
mouseY = gc.getHeight()-Mouse.getY();
if((mouseX>130&&mouseX<477)&&(mouseY>508&&mouseY<577))//back button
if(input.isMouseButtonDown(0))
sbg.enterState(0);
}
请帮助,谢谢。
答案 0 :(得分:0)
我想通了,所以对于任何有同样问题的人,你可以简单地覆盖mousePressed方法,就像(在我的情况下):
Main class:
public void mousePressed(int button, int x, int y) { // check if the buttons are pressed
if((x>130&&x<477)&&(y>308&&y<377))
if(button==0)
sbg.enterState(1);
if((x>130&&x<477)&&(y>408&&y<477))
if(button==0)
sbg.enterState(2);
if((x>130&&x<477)&&(y>508&&y<577))
if(button==0)
System.exit(0);
}
和
Howtoplay class:
public void mousePressed(int button, int x, int y) { // check if the buttons are pressed
if( ( x > 130 && x < 477 ) && ( y > 508 && y < 577 ) )
if(button==0)
sbg.enterState(0);
}
它不会再传播。