Я использую массив Libgdx для хранения своего собственного класса «Координаты». В другом классе я ссылаюсь на этот массив, чтобы увидеть, есть ли «блок» в линии зрения игрока. У меня есть все программирование строк, но я не могу понять, как увидеть, содержит ли Array «Координатор», как временный, который у меня есть. Кажется, я получил работу сLibgdx Array содержит
if(hex.getWorld().get(0).equals(tmp)) {
System.out.println("break");
break;
}
но это работает только с одним из «Координатов». Я хочу, чтобы он работал со всеми «координатами». Хотя это, казалось бы, как он будет работать, он не делает:
if(hex.getWorld().contains(tmp, true)) {
System.out.println("break");
break;
}
(если это не правильный код, просто отметим, что не копируется, я рукой написал это только сейчас) Это код, я используя в этой области.
....
tmp = new Coordinate();
for(int i = 1; i <= 5; i++){
tmp.setX(Math.round((cam.direction.x * i) + cam.position.x));
tmp.setY(Math.round(((cam.direction.y * i) + cam.position.y)/0.578f));
tmp.setZ(Math.round((cam.direction.z * i) + cam.position.z));
//System.out.println(tmp.toString(false));
//System.out.println(hex.getWorld().get(0).toString(false) + " - " + tmp.toString(false));
System.out.println(hex.getWorld().contains(tmp, true));
if(hex.getWorld().contains(tmp, false)){
System.out.println("break");
break;
}
}
//////////// BE-OND THIS POINT THE CODE IS CORRECT ////////////
float slope = (cam.direction.z)/(cam.direction.x);
if(spot != tmp){
hex.instances.removeIndex(hex.instances.indexOf(i, true));
spot = tmp;
float size = 0.578f;
float x = spot.getFormatedX(spot);
float y = (spot.getY() * size);
float z = spot.getFormatedZ(spot);
i = new ModelInstance(hex.getHex("red"), x, y, z);
i.transform.scale(size, size, size);
hex.instances.add(i);
}
....
То есть быть побежал каждый игровой цикл, и я знаю, что я должен иметь это в mouseMoved()
функции моего контроллера камеры, я этого не делаю. Переменная hex
также является обычным классом, но она не будет иметь ничего общего с Array
под номером hex.getWorld()
. И массив установки, как это в классе:
Array<Coordinate> world = new Array<Coordinate>();
Вы написали правильный метод .equals для вашего класса Coordinate? – Tenfour04
Я использовал ... позвольте мне проверить ... – mttprvst13