2013-05-18 26 views
1

首先,感谢您只需点击此:)我是一个业余学生编码器,我创建了一个(可怕的)版本的Pacman。我试图在我的1000x650小应用程序屏幕上为每个点创建矩形,因此我可以在包命中框触及它们时创建if语句,它们消失。一次创建多个矩形对象(Java)

我的问题是,我想创建一个类,所以我可以轻松地创建矩形,并只有1个if语句,而不是一个对每个点的矩形(努力学习是有效的:P)

如果我没有详细说明,我会警惕根据您的回复进行修改,谢谢!

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

+0

你的问题是非常含糊。当您需要特定答案时,请认真表明您已经拥有什么,并提出具体问题。 – BlacKow

回答

0

您可以使用for声明,repeadly循环,直到满足条件。

这是一般结构:

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

,这是一个例子,其中循环继续只要计数器i<n):

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

我建议你给this读。

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

希望工程快乐编码!

0

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

For(int I = 0; I<array.length;i++){ 
For (int j = 0; j <array[0].length;I++){ 
//fill w/ rectangles 
array[I][j]= ; 
}}