Как сделать движущийся шарик с помощью мыши слушателя движения

 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);
}

И это движущийся мяч.

0 ответов

Другие вопросы по тегам