Я создал способ рисовать поле выбора на экране, когда вы щелкаете и перетаскиваете мышь. Как и в большинстве стратегических игр. Когда мышь нажата, я вызываю свой метод рисования, который создает четырехъядерную сетку и добавляет ее в guiNode. (Плоский на экране).
Пока мышь нажата, вызывается следующий метод обновления:
Main.gui.getChild("Selection Box").removeFromParent();
xMouseCur = inputManager.getCursorPosition().x;
yMouseCur = inputManager.getCursorPosition().y;
if (xMouseCur < xMouse) {
}
quad = new Quad(xMouseCur - xMouse, yMouseCur - yMouse, false);
geom = new Geometry("Selection Box", quad);
geom.setLocalTranslation(new Vector3f(xMouse, yMouse, 0));
geom.setMaterial(mat1);
geom.setCullHint(CullHint.Never);
Main.gui.attachChild(geom);
Метод создает новый Quad на основе местоположения первого щелчка мыши и текущего местоположения мыши. Теперь проблема в том, что когда я пытаюсь щелкнуть и перетащить влево, квадрат не отображается. Однако, когда я перетаскиваю вправо, это происходит.
Я предполагаю, что когда он находится слева, параметр ширины при создании нового Quad является отрицательным числом, и это вызывает проблемы для класса Quad. Но я не уверен. Как я могу это исправить? Повернуть квадроцикл? Любые альтернативы?
Большое спасибо