在我的对象数组中的某处,运行同一行代码后值会改变吗?

时间:2019-06-17 02:21:00

标签: java android arrays object

基本上,我有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秒钟后,硬币开始在屏幕上蔓延,不再位于中间。

我需要的是使硬币保持在障碍之间的中心。

0 个答案:

没有答案