if (isLeftPressed) {
speedX -= boost;
x += speedX;
} else if (isRightPressed) {
speedX += boost;
x += speedX;
} else if (speedX > slowdown) {
speedX -= slowdown;
} else if (speedX < -slowdown) {
speedX += slowdown;
} else {
speedX = 0;
}
x = slowdown + speedX; //пробовал x += speedX; // и так тоже x = x +speedX;
checkBorders();
package com.javarush.games.moonlander;
public class Rocket extends GameObject {
private double speedY = 0;
private double boost = 0.05;
private double speedX = 0;
private double slowdown = boost /10;
public Rocket(double x, double y) {
super(x, y, ShapeMatrix.ROCKET);
}
public void move(boolean isUpPressed, boolean isLeftPressed, boolean isRightPressed) {
if (isUpPressed) {
speedY -= boost;
} else {
speedY += boost;
}
y += speedY;
if (isLeftPressed) {
speedX -= boost;
x += speedX;
} else if (isRightPressed) {
speedX += boost;
x += speedX;
} else if (speedX > slowdown) {
speedX -= slowdown;
} else if (speedX < -slowdown) {
speedX += slowdown;
} else {
speedX = 0;
}
x = slowdown + speedX;
checkBorders();
}
//4. В методе move(boolean, boolean, boolean)
// поле speedX должно увеличиваться на значение slowdown, если параметр метода isLeftPressed равен false, параметр метода isRightPressed равен false и значение поля speedX меньше значения (-slowdown).
private void checkBorders() {
if(x < 0) {
x = 0;
speedX = 0;
}
if(x + width > MoonLanderGame.WIDTH) {
x = MoonLanderGame.WIDTH - width;
speedX = 0;
}
if(y < 0) {
y = 0;
speedY = 0;
}
}
}
/*
Требования:
2. В методе move(boolean, boolean, boolean)
полю speedX должно устанавливаться значение 0, если параметр метода isLeftPressed равен false и параметр метода isRightPressed равен false и значение поля speedX находится в диапазоне от (-slowdown)
до slowdown включительно.
3. В методе move(boolean, boolean, boolean)
поле speedX должно уменьшаться на значение slowdown, если параметр метода isLeftPressed равен false, параметр метода isRightPressed равен false и значение поля speedX больше значения slowdown.
5. В методе move(boolean, boolean, boolean)
поле x должно быть увеличено на значение speedX после того, как поле speedX было изменено, и до вызова метода checkBorders().
*/