Цикл foreach с путями в Java

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

Поскольку я новичок в 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» следующих мобов, кажется, движется случайным образом.


person Jesper Tuborg Madsen    schedule 13.05.2013    source источник
comment
Я предполагаю, что есть проблема с глобальной переменной p. Вы можете опубликовать весь класс?   -  person darijan    schedule 13.05.2013
comment
Как устанавливается точка погони, это может быть жуткое действие на расстоянии, когда вы случайно устанавливаете тот же объект в конструкторе мостера, но нам нужно видеть весь класс (у которого желательно есть свой основной метод, который позволяет ему работать независимо других классов и показывает проблему)   -  person Richard Tingle    schedule 13.05.2013
comment
Действительно, похоже, проблема с переменной p! брб   -  person Jesper Tuborg Madsen    schedule 13.05.2013
comment
Правильно ли я понимаю, что каждый монстр должен идти по одному и тому же пути (один за другим)? В этом случае p должна быть переменной-членом Monster, а не глобальной, общей для всех монстров.   -  person Vincent van der Weele    schedule 13.05.2013
comment
Проблема заключалась в том, что переменная p была создана не в том месте. Спасибо за помощь, ребята! :)   -  person Jesper Tuborg Madsen    schedule 13.05.2013


Ответы (1)


Создана переменная "p" в определении класса монстров. Кредиты принадлежат Lolsvemir & Heuster.

person Jesper Tuborg Madsen    schedule 13.05.2013