2013-05-13 2 views
0

Я пытаюсь заставить своих «монстров» перейти через архаиста «PathingCoordinates», установив индивидуальные монстры «chasePoint». Но каждый раз, когда я добавляю больше 1 монстра, они бегают вокруг JPanel во всех направлениях. (Мое предположение, взяв самый быстрый маршрут до следующего «chasePoint»)Java pathing foreach loop

Поскольку я новичок в java и первый пользователь цикла foreach, я бы оценил, если бы кто-то указал мне в том направлении, логика не работает.

for (Monster i : Monstre) 
    { 
     this.add(i); //Adds all monsters from the "Monstre" arrayList 
     i.setBounds(i.monsterx, i.monstery, Monster.img0.getIconWidth(), Monster.img0.getIconHeight()); 


     if(i.monstery == i.chasePoint.getY() && i.monsterx == i.chasePoint.getX()){ 
      p++; 
      i.chasePoint = PathingCoordinates.get(p); 
     } 
     if(i.monsterx < i.chasePoint.getX()){ 
      i.monsterx++; 
     }else if(i.monstery < i.chasePoint.getY()){ 
      i.monstery++; 
     }else if(i.monsterx > i.chasePoint.getX()){ 
      i.monsterx--; 
     }else if(i.monstery > i.chasePoint.getY()){ 
      i.monstery--; 
     } 
    } 

Извините, если вам нужна дополнительная информация, просьба указать.

Редактировать: Между каждой икрой монстра есть задержка. Первый монстр преследует правильные «chasePoint» следующие мобы, кажется, перемещается случайным образом.

+1

Я предполагаю, что существует проблема с глобальной переменной p. Можете ли вы опубликовать весь класс? – darijan

+0

Как установить точку преследования, это может быть «призрачное действие на расстоянии», где вы случайно устанавливаете один и тот же объект внутри конструктора самого лучшего, но нам нужно увидеть весь класс (который предпочтительно имеет свой собственный основной метод, который позволяет это чтобы работать независимо от других классов и показывает проблему) –

+0

Действительно, проблема с переменной «p» действительно существует! brb –

ответ

0

Создана переменная «p» в определении монстра Кредиты отправляются на Lolsvemir & Heuster.