基本上,我有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秒钟后,硬币开始在屏幕上蔓延,不再位于中间。
我需要的是使硬币保持在障碍之间的中心。