У меня есть метод обновления, который обычно просто циклы, но теперь это не будет - PullRequest
0 голосов
/ 26 октября 2018
public void update() 
{
    if(w)
    {
        System.out.println("updated");
        pop.player1.movePlayer1(true);
    }
    if(s)
    {
        System.out.println("updated");
        pop.player1.movePlayer1(false);
    }
    if(up)
    {
        System.out.println("updated");
        pop.player2.movePlayer2(true);
    }
    if(down)
    {
        pop.player2.movePlayer2(false);
    }
    System.out.println("updated");
    ball.moveBall(renderer);
    renderer.repaint();

}

Таким образом, около 2 минут назад консоль выдала спам «обновлен», но после того, как я изменил несколько вещей, теперь это не так, «средство визуализации» ссылается на paintComponent, класс имеет следующую строку кода:

Ball ball = new Ball();

Я подозреваю, что это, вероятно, корень моей проблемы, но я точно не знаю, метод "moveBall" выглядит следующим образом:

public void moveBall(Renderer renderer)
{
    renderer.ball.PosY += renderer.ball.BallYSpeed[randIndexY];
    renderer.ball.PosX += renderer.ball.BallXSpeed[randIndexX];
    //hitting bottom
    if(renderer.ball.PosY  + renderer.ball.BallYSpeed[randIndexY]*2 >=  (screenSize.getHeight()) ||
            renderer.ball.PosY  + renderer.ball.BallYSpeed[randIndexY]*2 <= 0)
    {
        reverseY();
    }
    //hitting p1 paddle
    if((renderer.ball.PosX  + renderer.ball.BallXSpeed[randIndexX]*2 <=  PongPlusPlus.player1.x + PongPlusPlus.player1.width)&&
       (PongPlusPlus.player1.y <=renderer.ball.PosY && renderer.ball.PosY<= PongPlusPlus.player1.y +  PongPlusPlus.player1.height))
    {
        playerOneHitPaddle = true;
    }
    //hitting p2 paddle
    if((renderer.ball.PosX  + renderer.ball.BallXSpeed[randIndexX]*2 <=  PongPlusPlus.player2.x + PongPlusPlus.player2.width)&&
       (PongPlusPlus.player2.y <=renderer.ball.PosY && renderer.ball.PosY<= PongPlusPlus.player2.y +  PongPlusPlus.player2.height))
            {
                playerTwoHitPaddle = true;
            }
    //hitting right
    if(renderer.ball.PosX  + renderer.ball.BallXSpeed[randIndexX]*2 >=  (screenSize.getWidth()) || renderer.ball.PosX  + renderer.ball.BallXSpeed[randIndexX]*2 <= 0)
    {
        reverseX();
    }
}

ДонЯ не знаю много о том, как ссылаться на вещи в других классах, так как я совершенно новая концепция получения переменных из других классов и их использования.Буду признателен за любую помощь, и я прошу, пожалуйста, не преследуйте меня за то, что я не следую «соглашениям об именах» или что-то в этом роде, я знаю, что есть ошибки, рассказывать о них не помогает мне решить мою проблему.

...