Я работаю над программой прыгающего мяча. Я успешно сделал мяч, который поднимается и опускается. Я установил, что мяч не может выйти за пределы поля, поэтому, когда он ударяется о край экрана, он просто отскакивает вверх и так далее.
Дело в том, что я хочу, чтобы мяч в конце концов перестал двигаться. Например, я запускаю программу, мяч падает и отскакивает, может быть, до 80% своей начальной высоты. И когда он снова упадет, он будет ускоряться из-за силы тяжести, а затем снова поднимется, но, возможно, достигнет только около 60% своей первоначальной высоты, и в конце концов он перестанет двигаться.
Как мне создать такую вещь? Я гуглил часами, но ничего не нашел. Итак, теперь я умоляю вас помочь мне. Кроме того, если вы все же решите дать мне полезный совет, постарайтесь быть конкретным и предельно ясным. Я не так давно занимаюсь программированием. Заранее спасибо.
Вот мой код:
РЕДАКТИРОВАТЬ: УБЕДИТЕСЬ, что у меня нет основного метода для этого класса, поскольку он мне не нужен. Я пропускаю его через другой класс через объект.
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Game extends JPanel implements ActionListener{
int DIAMETER = 40;
int yPos;
int yVel = 3;
int GRAVITY =1;
Timer tm = new Timer(5,this);
public void paintComponent(Graphics g){
super.paintComponent(g);
//Setting the characteristics for the ball
g.setColor(Color.red);
g.fillOval(0, yPos, DIAMETER, DIAMETER);
tm.start();
repaint();
}
public void actionPerformed(ActionEvent e) {
//If it decides to go out of the screen, change direction.
if(yPos<0 || yPos>430)yVel=-yVel;
//This basically is the "engine". It moves the ball.
yPos = yPos + yVel;
}
}