Это игра «Защита башни». У меня есть класс, называемый солдатом.Создание системы таргетинга в Java
if(wave1==true){
for(int i=0;i<(wave*10);i++){
handler.addObject(new soldier(getX(), getY(), ID.soldier, handler));
try {
// System.out.println(i);
Thread.sleep(500);
} catch (InterruptedException e) {
}
}
wave++;
wave1=false;
try {
// System.out.println(i);
Thread.sleep(WT);
} catch (InterruptedException e) {
}
}
Каждый раз, когда этот код называется это солдат получает порождало 10 раз для каждой волны, но у меня есть один вопрос. Я хотел бы, чтобы башня 1 убила самого дальнего солдата в радиусе действия. Код убийства:
private void collision() {
for(int i=0; i< Handler.object.size();i++){
GameObject tempObject = Handler.object.get(i);
if(tempObject.getID()== ID.ST1){
if(getBounds().intersects(tempObject.getBounds())){
Hsol=(Hsol-1);
if(Hsol<=0){
handler.removeObject(this);
}
}
}
}
}
Так что я знаю, что нужно сделать расстояние формулу, чтобы найти, какие из них ближе, но я не уверен, как это сделать.
Просьба уточнить, Вы хотите две вещи. 1. что солдат 1 не погибнет. 2. Чтобы башня 1-го убила самого дальнего солдата в радиусе действия. Это верно? – SteelToe
Я не читал дальше 'if (wave1 = true)'. Вероятно, вы хотите 'if (wave1 == true)' или намного лучше: 'if (wave1)'. Я также попытался бы выбрать гораздо лучшие имена: наличие булевой волны1 и целочисленной волны довольно сбивает с толку. WT, Hsol, ID не уважают соглашения об именах, ничего не значат и делают ваш код очень трудным для чтения, даже для вас. –
@JBNizet У меня есть идентификатор нерестовой системы. Мне просто нужна помощь, чтобы система таргетинга для правильной работы башни. –