В основном я хочу переместить своего врага из одной позиции в другую.
Там стартовая позиция не проблема ... и не то место, куда они должны идти.
Проблема заключается в том, как они туда попадают. С кодом, который я написал, они просто телепортируются с карты.
Так что я даже не собираюсь публиковать это. Используя треугольники ... какой самый эффективный способ доставить их из точки А в точку Б?
Допустим, точка А равна 10, 10; и точка B равна 123, 349. Но есть также вероятность того, что A будет B, а B будет A. Поэтому он также должен иметь дело с негативами.
Теперь последнее, что усложняет вопрос, это то, что он перемещается между 1 и 5 пикселями каждый раз, когда перерисовывается ... поэтому, если он переходит позицию, я не уверен, как проверить, находится ли она в общей области.
Спасибо! Кстати, мне не нужен полный код ... просто идеи! Я могу кодировать себя. Спасибо !!!
текущий код:
if (enemyList.length > 0) {
for (int[] x : enemyList) {
double changeX;
double changeY;
//if already in spot, anounce it
if (x[0] == x[2] && x[1] == x[3]) {
x[2] = -1;
x[3] = -1;
}
//if anounced generate new spot of interest
if (x[2] == -1 || x[3] == -1) {
x[2] = generateRandom(0, 550);
x[3] = generateRandom(0, 400);
}
//find distance from target and move there
int _y = x[1] - x[3];
int _x = x[0] - x[2];
if (_x > _y) {
changeX = _x / _y;
changeY = _y / _y;
} else {
changeY = _y / _x;
changeX = _x / _x;
}
changeY = changeY * generateRandom(0, 10);
changeX = changeX * generateRandom(0, 10);
//change physical position
x[0] += (int) changeX;
x[1] += (int) changeY;
}
}