レーンがアプレットの上部に移動したら、レーンをループさせて、アプレットの下部から上部に戻すなどを試みています。上部に非表示の GLine オブジェクトを設定し、これをループに含めることで getBounds を使用しようとしました: && (roadLines[1].getBounds().intersects(whiteline1.getBounds()) == true)) これまでのところ、'それを完全に機能させることはできません。コードの一部を含めています。私が達成したことは、行をアプレットの上部に移動させて、行をなくすことです。行をループさせようとしている、または Y アプレットを超えた場合は実際に下部から出させようとしています。 . どうすればこれを解決できますか?
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);
}
}