2015-12-05 2 views
-4

Я делаю эту 2D-шутер на Java как учебный проект. В настоящее время у меня есть один вражеский класс в игре. Если у меня на экране несколько кратных врагов, и один из них умирает от моих пуль, случайный враг умрет из тех, что на экране. Я знаю, что наличие одного и того же врага в нескольких классах с отдельным здоровьем - это решение, но очень плохое. Должен быть другой способ сделать это?removeObject удаляет случайный объект вместо определенного

+3

чтобы исправить ошибку в вашей программе, но нам будет трудно помочь на основе того, что вы опубликовали до сих пор. Попробуйте улучшить этот вопрос. Вы можете посмотреть [тур], [помощь] и особенно в разделах [как задать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask), чтобы узнать, как это сделать. –

+2

Просьба указать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) –

+0

Ошибка отсутствует. Это я не знаю, как заставить его удалить конкретного врага. – Markus121

ответ

0

Я думаю, что вы используете статическое поле в классе Enemy вместо нормального, например:

Enemy { 
    static Health health; 
    ... 
} 

вместо

Enemy { 
    Health health; 
    ... 
} 

Использование нестатические полей и в этом случае вы можете просто Список < Враг> враги и получить от него только один вражеский объект:

enemies.get(3).setHealth(Health.Died) // died enemy with number 3 
+0

открытый статический поплавок BEHealth = 100; Так это проблема? – Markus121

+0

Да, это основная проблема в вашем коде, замените на «public float BEHealth = 100;» и вы можете изменить здоровье для каждого врага отдельно. –

+0

Да, это сработало :) Спасибо, что помогли мне: D – Markus121

Смежные вопросы