1

My question is how can i implement the MouseMotionListener for list of objects can follow my mouse? I guess, I couldn't get the idea so far. I tried to do that my second part of the worm will follow the head. So it will become like a train. But in first second seems like Ok but all objects suddenly converge to a point. Basically my code is above; My Worm.class is like that;

public class Worm {
    Random rd = new Random();
    int xWorm;
    int yWorm;
    int Speed = 100;
    int size = 10; // default
    Worm()
    {
        xWorm = rd.nextInt(250);
        yWorm = rd.nextInt(250);
    }


    Worm(int xNew, int yNew){ 

        xWorm = xNew;
        yWorm = yNew;

    }

    public int getxWorm() {
        return xWorm;
    }


    public void setxWorm(int xWorm) {
        this.xWorm = xWorm;
    }


    public int getyWorm() {
        return yWorm;
    }

    public void setyWorm(int yWorm) {
        this.yWorm = yWorm;
    }

    public int getSpeed() {
        return Speed;
    }

    public void setSpeed(int speed) {
        Speed = speed;
    }
    public void move (int dx, int dy) {
        xWorm+=dx;
        yWorm+=dy;
    }
    public void setPosition(int x,int y) {
        this.xWorm = x;
        this.yWorm = y;
    }
    public void paint(Graphics g) {

        Graphics2D g2 = (Graphics2D) g;

        Ellipse2D Ellipse= new Ellipse2D.Double(xWorm,yWorm,10,10);
        g2.setColor(Color.GREEN);

        g2.draw(Ellipse);
        g2.fill(Ellipse);
        //  g.fillOval(this.xWorm, this.yWorm, 30, 30);

    }   

    public boolean iscollision(Food f) {
        Rectangle2D RectangleforFood = new Rectangle2D.Double(f.xFood,f.yFood,5,5);
        Rectangle2D RectangleforWormHead = new Rectangle2D.Double(this.xWorm,this.yWorm,10,10);
        if (RectangleforWormHead.intersects(RectangleforFood)) {
            return true;
        }
        else {
            return false;
        }


    }
    }

and my Panel.class the tracker function like that ;

public void createlongworm() {
    for(int i = 0; i < 100 ; i++) {
    wormBody.add(new Worm(wormBody.get(i).xWorm+10,wormBody.get(i).yWorm));
}}
    public void tracker(ArrayList <Worm> TracktheWorm) {
            for(int i = 0; i < TracktheWorm.size()-1 ; i++) {
                TracktheWorm.get(i+1).xWorm = TracktheWorm.get(i).xWorm;
                TracktheWorm.get(i+1).yWorm = TracktheWorm.get(i).yWorm;
            }
    repaint();
        }
Black Swan
  • 813
  • 13
  • 35
  • For better help sooner, post a [MCVE] or [Short, Self Contained, Correct Example](http://www.sscce.org/). – Andrew Thompson May 09 '18 at 21:40
  • Possible duplicate [Java: Move image towards mouse position](https://stackoverflow.com/questions/26784303/java-move-image-towards-mouse-position/26791886#26791886) – MadProgrammer May 09 '18 at 22:31

0 Answers0