2013-05-18 5 views
1

Прежде всего, спасибо, просто щелкнув по этому изображению :) Я ученик-ученик-ученик, и я создаю (ужасную) версию Pacman. Я пытаюсь создать прямоугольники для каждой из моих точек на моем экране апплета 1000x650, поэтому я могу создать оператор if, когда пакетные окна попадают в них, они исчезают.Создание нескольких объектов прямоугольника сразу (Java)

Моя проблема, я хочу, чтобы создать класс, так что я могу создавать прямоугольники легко и только 1, если утверждение, а не один для каждой точки прямоугольника (пытаясь научиться быть эффективным: P)

Если Я недостаточно разбирался, я буду с осторожностью приносить изменения на основе ваших ответов, и спасибо !!!

(Edit 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

Попробуйте этот код, он возвращает истину, когда она сталкивается с точкой.

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 d, используя вложенный цикл?

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