2d Sidescroller движущийся фон в Java

Я следовал руководству по 2-й стороне скроллера в Java и получил основы работы, я немного изменил код, чтобы сделать так, чтобы плитки и фон всегда двигались, это работало, как я и планировал. Соответствующий код ниже:

Внутри класса персонажа:

        if (speedX < 0) {
            centerX += speedX;
        }
        if (speedX == 0 || speedX < 0) {
            bg1.setSpeedX(0);
            bg2.setSpeedX(0);

        }
        if (centerX <= 350 && speedX > 0) {
            centerX = centerX + speedX ;
        }
        if (speedX > 0 && centerX > 350) {
            bg1.setSpeedX(-MOVESPEED / 4);
            bg2.setSpeedX(-MOVESPEED / 4);
        }

Внутри класса плитки:

            speedX = bg.getSpeedX() * 3;
            tileX = tileX + speedX - 4;

Я хотел сделать так, чтобы, если персонаж двигался влево, плитки + фон двигались медленнее. У меня проблемы с областью действия переменной и сеттерами / получателями. В основном игровом классе у меня есть код:

            case 
               KeyEvent.VK_LEFT:
               character.moveLeft();
               character.setMovingLeft(true);
               break; 

Как я могу включить оператор if в класс плиток, который считывает, движется ли персонаж влево (определяется по событию keyPressed в классе основной игры) и соответствующим образом регулирует скорость плиток?

Я хочу написать что-то с эффектом:

              if (setMovingLeft = true){
                   speedX = bg.getSpeedX() * 3;
                   tileX = tileX + speedX - 1;     << changed from - 4

Очевидно, что это не работает, кто-нибудь может предложить способ сделать это? Я могу предоставить больше информации, если это необходимо.

0 ответов

Другие вопросы по тегам