addMouseMotionListener(new MouseAdapter() {
public void mouseMoved(MouseEvent e) {
relativeX = e.getX();
relativeY = e.getY();
System.out.println(relativeX + "," + relativeY);
System.out.println(x + "," + y);
x = x + speedX;
y = y + speedY;
repaint();
if (x > relativeX) {
speedX = speed * -1;
} else if (x < relativeX) {
speedX = speed;
}
if (y > relativeY) {
speedY = speed * -1;
} else if (y < relativeY) {
speedY = speed;
}
}
});
Привет всем, я создал один слушатель движения мыши, и мяч будет следовать в направлении, куда двигалась моя мышь.Однако мяч перестанет двигаться, как только я перестану двигать мышью.Несмотря на то, что расстояние между курсором мыши и положением шара довольно велико, мяч просто отказывается перемещаться к месту расположения моей мыши.Я думаю, это из-за того, что мой слушатель движения перестал работать, так как я больше не двигаю мышь.У кого-нибудь есть идеи о том, как заставить шар переместиться в точное положение моей мыши? (Впервые спрашиваю о переполнении стека, надеюсь, что все обнажат мою грамматику)
private void doDrawing(Graphics g) {
radius = 20;
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(red);
g2d.fillOval((int) x, (int) y, radius, radius);
}
И это движущийся шар.