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