Я делаю селектор единиц для использования в игре RTS, на Java с LibGDX. Я создал прямоугольник, чтобы проверить, сталкивается ли блок hitbox с ячейкой выбора, и если это так, блок добавляется в список выбранных единиц.Java, LibGDX, пересечение прямоугольника с отрицательными размерами?
Если я перетаскиваю мышь в одном направлении, то единицы выбираются, а в другом (когда создается прямоугольник с отрицательной шириной/высотой, это не так). Есть ли у вас какие-либо предложения, почему это так.
Спасибо.
Код для выбора:
boolean selectInProg = false;
public List<Entity> createSelection(List<Entity> entities){
if(Gdx.input.isButtonPressed(Input.Buttons.LEFT)){
if(!selectInProg){
xDown = Gdx.input.getX();
yDown = Gdx.graphics.getHeight() - Gdx.input.getY();
selectInProg = true;
}
hitbox.set(xDown, yDown, Gdx.input.getX() - xDown, (Gdx.graphics.getHeight() - Gdx.input.getY()) - yDown);
}else{
hitbox = new Rectangle();
selectInProg = false;
}
List<Entity> selected = new ArrayList();
for(Entity entity : entities){
if(Intersector.intersectRectangles(hitbox, entity.hitbox, new Rectangle())){
selected.add(entity);
entity.selected = true;
}
}
return selected;
}
Это гениальные спасибо, работает отлично! – DrDominic