1

首先,感谢您单击此 :) 我是一名业余学生编码器,我正在创建一个(可怕的)Pacman 版本。我正在尝试为我的 1000x650 小程序屏幕上的每个点创建矩形,因此我可以创建一个 if 语句,当 Packages hit box 触及它们时,它们就会消失。

我的问题是,我想创建一个类,这样我就可以轻松地创建矩形并且只有 1 个 if 语句,而不是每个点矩形一个(试图学习高效:P)

如果我没有详细说明,我会谨慎地根据您的回复进行编辑,谢谢!!!

(编辑 1:修正了对句子 xD 的运行)

4

4 回答 4

0

您可以使用for重复循环直到满足条件的语句。

这是一般结构:

for (counterInitialization; terminatingCondition; incrementLoopsCount) {
    statement(s);
}

这是一个例子,在这个例子中,循环会持续到 counter i<n):

int n = 50;
for(int i = 0;i<n;i++){
//code for creating a rectangle
...
}

我建议你读一读。

于 2013-05-18T20:25:50.813 回答
0

如果您需要在 X 和 Y(矩阵)上填充矩形,您很可能需要嵌套循环。假设您想要一个 5 * 5 的矩形,宽度每 100 像素,高度为 50 像素:

for(int x = 0;x<1000;x+= 100)
{
     for(int y=0;y<650; y+= 50)
     {
          drawRectangle(x, y, 5, 5); // Considering drawRectangle(x, y, width, height)
     }
}
于 2013-05-18T20:58:02.783 回答
0

试试这个代码,当它与点碰撞时它会返回true。

Object pacman = new Object();
pacman.xcoord = null;
pacman.ycoord = null;

final int dotsInStage = 50;
// add other properties

int xcoords[] = new int[dotsInStage];
int ycoords[] = new int[dotsInStage];

将此布尔值称为:

public boolean dotCollison (int xcoords[], int ycoords[], Object pacman) {
       loop = 0;
       while (loop <= dotsInStage) {
            if (pacman.xcoord = xcoords[loop] && pacman.ycoord = ycoords[loop]) {
                return true;
                break;
            }
        }
}

要添加矩形,请尝试:

int loop = 0;
while (loop <= dotsInStage) {
   Graphics.drawRectangle (xcoord[loop] , ycoord[loop] , xcoord[loop] + 10 , ycoord[loop] + 10);
}

希望它有效并且编码愉快!

于 2013-05-18T21:08:06.750 回答
0

我不完全理解你的问题。但是你不能只使用嵌套的 for 循环创建一个二维数组吗?

For( int I = 0; I<array.length;i++){
For (int j = 0; j <array[0].length;I++){
//fill w/ rectangles
array[I][j]= ;
}}
于 2013-05-19T03:10:16.720 回答