括号放置错误

时间:2014-10-30 22:39:15

标签: java

我收到此错误:Syntax error on token "}", { expected after this token

我不确定这里的问题是什么,我已经检查过括号是否匹配,或者我认为,所以我并不完全清楚如何解决这个问题

 import java.awt.*;


public class Player extends Entity {

    private int directionX, directionY;
    private Main instance;

    private Rectangle hitbox;

    private int life = 3;

    public Player(Main instance, int x, int y){
        super(x , y);
        this.instance = instance;
        width = 16; height = 16;

        hitbox = new Rectangle(x, y, width, height);
    }

    public void draw(Graphics g){
        move();

        g.setColor(Color.WHITE);
        g.fillOval(hitbox.x, hitbox.y, hitbox.width, hitbox.height);
        g.setColor(Color.WHITE);
        g.drawString("Lives: " + life, 20, 20);
    }

    private void move(){
        if(!instance.getStage().isCollided(hitbox)){
            directionY = 1;
        } else { directionY = 0;
        hitbox.x += directionX;
        hitbox.y += directionY;
        }
    } // <<<<<< Getting error here <<<<<<<<<<

    if(instance.getEnemyManager().isCollided(hitbox)){
        if(life > 0){
            life--;
            hitbox.x = 800 / 2 - width / 2;
            y = 390;
        } else {
            instance.setGameOver(true);
        }
        }


    public void setdirectionX(int value){
        directionX = value;
    }

    public void setdirectionY(int value){
        directionY = value;
    }
}

如果有人能回答这个问题,我会很高兴知道。

2 个答案:

答案 0 :(得分:2)

查看问题区域中的代码:

private void move(){
    if(!instance.getStage().isCollided(hitbox)){
        directionY = 1;
    } else { directionY = 0;
    hitbox.x += directionX;
    hitbox.y += directionY;
    }
}

if(instance.getEnemyManager().isCollided(hitbox)){

结束括号是方法的结尾...然后你有一个if语句,它在类声明的中间,而不是在任何方法中。您打算成为move()的一员吗?如果是这样,你需要在它之前移除右括号。

请注意,至少在您的帖子中,缩进遍布各处。如果你让你的IDE格式化你的代码,真的有帮助,所以你可以看到什么代码是什么方法的一部分等等。这使得其他人也更容易阅读...

答案 1 :(得分:1)

你写

if(instance.getEnemyManager().isCollided(hitbox)){
    if(life > 0){
        life--;
        hitbox.x = 800 / 2 - width / 2;
        y = 390;
    } else {
        instance.setGameOver(true);
    }
    }

在任何方法之外,这就是你的编译器警告你的原因