Где-нибудь в моем массиве объектов значения меняются после выполнения одной и той же строки кода? - PullRequest
0 голосов
/ 17 июня 2019

В основном у меня есть 2 массива и обработчики. Один для порождения предметов, а другой обрабатывает препятствия. Что происходит, хотя, через некоторое время значения меняются и не в центре. Я предоставлю скриншот. https://i.stack.imgur.com/nR7ae.png Но код для создания предметов и препятствий не меняется, что может повлиять на это?

Я столько раз просматривал свой код и не могу найти причину этого.

Я заполняю монеты в центре препятствий, и когда одна из них поднята или уходит с экрана, запускается этот бит кода. Вот как я заполняю свои монеты и препятствия.

private void populateCoins() {

        currY = (-5 * Constants.SCREEN_HEIGHT / 4) - (obstacleGap / 2) + (obstacleHeight);
        while (currY < 0) {
            xStartCoin = (int) (Math.random() * (Constants.SCREEN_WIDTH - obstacleHeight));
            coins.add(new Coin(obstacleHeight, colour, xStartCoin, currY));
            currY += obstacleHeight + obstacleGap;
        }
    }

 private void populateObstacles() {
        int currY = (-5 * Constants.SCREEN_HEIGHT / 4);
        while (currY < 0) {
            int xStart = (int) (Math.random() * (Constants.SCREEN_WIDTH - playerGap));
            obstacles.add(new Obstacle(obstacleHeight, colour, xStart, currY, playerGap));
            currY += obstacleHeight + obstacleGap;
        }
    }

Вот как я создаю свои препятствия и монеты.

obstacles.add(0, new Obstacle(obstacleHeight, colour, xStart,
obstacles.get(0).getRectangle().top - Constants.OBSTACLE_HEIGHT - Constants.OBSTACLE_GAP, 
(int)Constants.PLAYER_GAP));

coins.add(0, new Coin(obstacleHeight, colour, xStartCoin,
coins.get(0).getRectangle().top - Constants.OBSTACLE_GAP + Constants.OBSTACLE_HEIGHT));

Именно после игры в течение примерно 60-х годов монеты начинают ползти вверх по экрану, уже не в центре.

Все, что мне нужно, чтобы монеты оставались в центре между препятствиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...