Я написал метод, чтобы попытаться оптимизировать мой код, поскольку одно и то же было вызвано 3 раза, однако переписывание этого метода имеет только аналогичную проблему. Он в основном делает то же самое, но просто изменяет переменную, основанную на параметре.Код повторного факторинга/оптимизации кода
public void checkChance(String spawnX, int chance, int value) {
if (spawnX.equals("smallX")) {
if (player.getX() > screenWidth/2) {
if (chance > value) {
smallX = random.nextInt(screenWidth - (screenWidth/2)) + (screenWidth/2);
} else {
smallX = random.nextInt((screenWidth/2) - 0);
}
} else {
if (chance > value) {
smallX = random.nextInt((screenWidth/2) - 0);
} else {
smallX = random.nextInt(screenWidth - (screenWidth/2)) + (screenWidth/2);
}
}
} else if (spawnX.equals("mediumX")) {
if (player.getX() > screenWidth/2) {
if (chance > value) {
mediumX = random.nextInt(screenWidth - (screenWidth/2)) + (screenWidth/2);
} else {
mediumX = random.nextInt((screenWidth/2) - 0);
}
} else {
if (chance > value) {
mediumX = random.nextInt((screenWidth/2) - 0);
} else {
mediumX = random.nextInt(screenWidth - (screenWidth/2)) + (screenWidth/2);
}
}
} else if (spawnX.equals("largeX")) {
if (player.getX() > screenWidth/2) {
if (chance > value) {
largeX = random.nextInt(screenWidth - (screenWidth/2)) + (screenWidth/2);
} else {
largeX = random.nextInt((screenWidth/2) - 0);
}
} else {
if (chance > value) {
largeX = random.nextInt((screenWidth/2) - 0);
} else {
largeX = random.nextInt(screenWidth - (screenWidth/2)) + (screenWidth/2);
}
}
}
}
В идеале я бы хотел, так что я только часть в теле каждого, если (который проверяет, что равняется spawnX) и просто изменить то, что установка переменной GET в. Как я могу это сделать?
Это не вычитание 0, 0 - минимальное значение. Я оставил его здесь для своей выгоды. Но спасибо за порядок! –
Снова это не вычитание, я знаю, что это будет равно screenWidth/2, но я хочу, чтобы он начинался с экранаWidth/2 на screenWidth (это не экранная ширина минус что-либо) –
Хорошо, но я могу говорить только с кодом, который выкладывается :) – laz