2014-10-30 6 views
-1

Я получаю эту ошибку: 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

Посмотрите на свой код в проблемной области:

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

написать

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

вне любого метода, поэтому компилятор предупреждает вас

Смежные вопросы