1

I'm trying to have the lanes looping once they're moving over onto the top of the applet, to have them come out from the bottom of the applet back to the top and so on. I've tried using getBounds by setting an invisible GLine object at the top and including this in a loop: && (roadLines[1].getBounds().intersects(whiteline1.getBounds()) == true)) so far didn't get it to fully working. I am including partial of the code. What I have gotten accomplished is having lines move to the top and out of the applet and they're gone.I'm trying to have them loop, or actually have them come out of the bottom if they have gone over the Y-applet. How could I have this resolved?

import acm.program.*;
import acm.graphics.*;
import java.awt.Color;

public class Looping extends GraphicsProgram 
{
    //constant declared
    public static final int APPLET_WIDTH = 510;
    public static final int APPLET_HEIGHT = 750;

    public static final int MOVEMENT_PAUSE = 30;
    public static final int ZERO_X = 0;
    public static final int ZERO_Y = 0;

    //shorten constant 
    final int AW = APPLET_WIDTH;
    final int AH = APPLET_HEIGHT;
    final int MP = MOVEMENT_PAUSE;

    //Declaring Variables
    public int linesMove;
    GRect[] roadLines;
    GLine BLACKline1;
    GLine whiteline1;

    public void init()
    {

        whiteline1 = new GLine(ZERO_X,ZERO_Y, APPLET_WIDTH, ZERO_Y);
        whiteline1.setColor(Color.white);
        add(whiteline1);
        linesMove = 5;
    }
    public void run()
    { 
        waitForClick();
        moveLines();

         while ((roadLines[20].getBounds().intersects(whiteline1.getBounds()) == true))
         {  
             moveLines();
             pause(MP);
         }
    }


    public void displayLines()
    {
        //First Row
        roadLines = new GRect[20];
        roadLines[0] = new GRect(10,133);
        roadLines[0].setFillColor(Color.BLACK);
        roadLines[0].setFilled(true);
        add(roadLines[0], 100, 0);

        roadLines[1] = new GRect(10,133);
        roadLines[1].setFillColor(Color.BLACK);
        roadLines[1].setFilled(true);
        add(roadLines[1], 100, 246);

        roadLines[2] = new GRect(10,133);
        roadLines[2].setFillColor(Color.BLACK);
        roadLines[2].setFilled(true);
        add(roadLines[2], 100, 492);

        roadLines[3] = new GRect(10,133);
        roadLines[3].setFillColor(Color.BLACK);
        roadLines[3].setFilled(true);
        add(roadLines[3], 100, 738);

        roadLines[4] = new GRect(10,133);
        roadLines[4].setFillColor(Color.BLACK);
        roadLines[4].setFilled(true);
        add(roadLines[4], 100, 984);

        //Second Row
        roadLines[5] = new GRect(10,133);
        roadLines[5].setFillColor(Color.BLACK);
        roadLines[5].setFilled(true);
        add(roadLines[5], 200, 0);

        roadLines[6] = new GRect(10,133);
        roadLines[6].setFillColor(Color.BLACK);
        roadLines[6].setFilled(true);
        add(roadLines[6], 200, 246);

        roadLines[7] = new GRect(10,133);
        roadLines[7].setFillColor(Color.BLACK);
        roadLines[7].setFilled(true);
        add(roadLines[7], 200, 492);

        roadLines[8] = new GRect(10,133);
        roadLines[8].setFillColor(Color.BLACK);
        roadLines[8].setFilled(true);
        add(roadLines[8], 200, 738);

        roadLines[9] = new GRect(10,133);
        roadLines[9].setFillColor(Color.BLACK);
        roadLines[9].setFilled(true);
        add(roadLines[9], 200, 984);


        //Third Row
        roadLines[10] = new GRect(10,133);
        roadLines[10].setFillColor(Color.BLACK);
        roadLines[10].setFilled(true);
        add(roadLines[10], 300, 0);

        roadLines[11] = new GRect(10,133);
        roadLines[11].setFillColor(Color.BLACK);
        roadLines[11].setFilled(true);
        add(roadLines[11], 300, 246);

        roadLines[12] = new GRect(10,133);
        roadLines[12].setFillColor(Color.BLACK);
        roadLines[12].setFilled(true);
        add(roadLines[12], 300, 492);

        roadLines[13] = new GRect(10,133);
        roadLines[13].setFillColor(Color.BLACK);
        roadLines[13].setFilled(true);
        add(roadLines[13], 300, 738);

        roadLines[14] = new GRect(10,133);
        roadLines[14].setFillColor(Color.BLACK);
        roadLines[14].setFilled(true);
        add(roadLines[14], 300, 984);


        //Fourth Row
        roadLines[15] = new GRect(10,133);
        roadLines[15].setFillColor(Color.BLACK);
        roadLines[15].setFilled(true);
        add(roadLines[15], 400, 0);

        roadLines[16] = new GRect(10,133);
        roadLines[16].setFillColor(Color.BLACK);
        roadLines[16].setFilled(true);
        add(roadLines[16], 400, 246);

        roadLines[17] = new GRect(10,133);
        roadLines[17].setFillColor(Color.BLACK);
        roadLines[17].setFilled(true);
        add(roadLines[17], 400, 492);

        roadLines[18] = new GRect(10,133);
        roadLines[18].setFillColor(Color.BLACK);
        roadLines[18].setFilled(true);
        add(roadLines[18], 400, 738);

        roadLines[19] = new GRect(10,133);
        roadLines[19].setFillColor(Color.BLACK);
        roadLines[19].setFilled(true);
        add(roadLines[19], 400, 984);
    }

    public void moveLines()
    {
        displayLines();
        //first row
        roadLines[0].move(0, -linesMove);
        roadLines[1].move(0, -linesMove);
        roadLines[2].move(0, -linesMove);
        roadLines[3].move(0, -linesMove);
        roadLines[4].move(0, -linesMove);
        roadLines[5].move(0, -linesMove);

        //third row
        roadLines[6].move(0, -linesMove);
        roadLines[7].move(0, -linesMove);
        roadLines[8].move(0, -linesMove);

        //fourth row
        roadLines[9].move(0, -linesMove);
        roadLines[10].move(0, -linesMove);
        roadLines[11].move(0, -linesMove);

        roadLines[12].move(0, -linesMove);
        roadLines[13].move(0, -linesMove);
        roadLines[14].move(0, -linesMove);

        roadLines[15].move(0, -linesMove);
        roadLines[16].move(0, -linesMove);
        roadLines[17].move(0, -linesMove);
        roadLines[18].move(0, -linesMove);
        roadLines[19].move(0, -linesMove);
    }
}
Dmitriy
  • 97
  • 3
  • 15
  • Why code an applet? If it is due to the teacher specifying it, please refer them to [Why CS teachers should **stop** teaching Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/). – Andrew Thompson Dec 14 '15 at 02:05
  • @Andrew Thompson I know it's stupid but that's how it just is in that class. It's our first Java class. Right now it's just a matter of doing it – Dmitriy Dec 14 '15 at 02:11
  • *"Right now it's just a matter of doing it"* Yes, definitely refer the teacher to that link.. – Andrew Thompson Dec 14 '15 at 02:15
  • @Andrew Thompson I know what you mean. I'm not here to have everything done for me. It's something our instructor didn't go over. I just need a push with advice into the right direction. Thanks though! – Dmitriy Dec 14 '15 at 02:22

0 Answers0