0

私はこの問題を抱えており、不正な式の開始をスローし続けています。括弧をチェックしましたが、問題ないと思います。コードは次のとおりです。また、30行目にエラーがあると書かれていますが、これはよくわかりません....

    public class Menu extends BasicGameState {

Image playNow;
Image exitGame;

public String mouse = "No Input Yet!";

public Menu(int state) {
}

@Override
public void init(GameContainer gc, StateBasedGame sbg) throws SlickException {
    playNow = new Image("res/playNow.png");
    exitGame = new Image("res/exitGame.png");
}

@Override
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException {
    g.drawString(mouse, 590, 10);
    g.drawString("Welcome to my Game!", 100, 50);
    playNow.draw(100,100);
    exitGame.draw(100, 200);
}
//slick counts from the bottom-left of the display, not the top-left, like java does

@Override
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException {
    Input input = gc.getInput();
    int mousex = Mouse.getX();
    int mousey = Mouse.getY();
    mouse = "Mouse coordinate x: " + mousex + " y: " + mousey;
    // x-min:105  x-max:300  y-min:  y-max:300
    if(input.isMouseButtonDown(0)) {
        if(mousex>100 && mousex<300) && (mousey>400 && mousey< 435) { //error
        sbg.enterState(1);
    }
        if(mousex>100 && mousex<300) && (mousey>300 && mousey <335) { //error
        System.exit(0);
    }
    }
}

@Override
public int getID() {
    return 0;
}

} 本当にすぐに助けが必要です。

4

1 に答える 1

1

Java では、an の条件はif括弧で完全に囲む必要があります。変化する

if(mousex>100 && mousex<300) && (mousey>400 && mousey< 435) {

if((mousex>100 && mousex<300) && (mousey>400 && mousey< 435)) {

...その他のif条件も同様です。

コンパイラはそれ(mousex>100 && mousex<300)が条件全体であると考え&& (mousey>400 && mousey< 435)、条件の本体として意味がありませんでした。

于 2013-10-31T22:38:01.873 に答える