Създадох начин за рисуване на поле за избор на екрана, когато щракнете и плъзнете мишката. Както в повечето стратегически игри. Когато мишката е натисната, извиквам моя метод за рисуване, който създава квадратна мрежа и я добавя към 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. Но не съм сигурен. Как мога да поправя това? Завъртане на Quad? Някакви алтернативи?
Благодаря ти много