1

レーンがアプレットの上部に移動したら、レーンをループさせて、アプレットの下部から上部に戻すなどを試みています。上部に非表示の 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);
    }
}
4

0 に答える 0