Camera JMonkey选择方

Camera JMonkey选择方,camera,jmonkeyengine,Camera,Jmonkeyengine,我创建了一种方法,当你点击并拖动鼠标时,在屏幕上绘制一个选择框。就像大多数战略游戏一样。当按下鼠标时,我调用我的draw方法,该方法创建一个四边形网格并将其添加到guiNode。(平放在屏幕上) 当仍按下鼠标时,将调用以下更新方法: Main.gui.getChild("Selection Box").removeFromParent(); xMouseCur = inputManager.getCursorPosition().x; yMouseCur = inputM

我创建了一种方法,当你点击并拖动鼠标时,在屏幕上绘制一个选择框。就像大多数战略游戏一样。当按下鼠标时,我调用我的draw方法,该方法创建一个四边形网格并将其添加到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);
Main.gui.getChild(“选择框”).removeFromParent();
xMouseCur=inputManager.getCursorPosition().x;
yMouseCur=inputManager.getCursorPosition().y;
if(xMouseCur
该方法基于鼠标的第一次单击位置和鼠标的当前位置创建一个新的四边形。现在的问题是,当我尝试单击并向左拖动时,正方形不会显示。但是,当我向右拖动时,它会

我的假设是,当它位于左侧时,创建新四边形时的宽度参数为负数,这会导致四边形类出现问题。但我不确定。我怎样才能解决这个问题?旋转四边形?还有别的选择吗


非常感谢

您的问题是背面剔除。 当四边形的宽度(或高度)为负时,您将看到该对象的背面,默认情况下,该对象是按三角形剔除的。geom.setCullHint用于平截体剔除(当相机不看你时绘制),gui节点不会担心这一点

强制四边形为正大小: 适当设置每个帧的位置和大小

或者使用
mat1.getAdditionalRenderState().setFaceCullMode(FaceCullMode.Off)
告诉材质绘制背面。不过,它会一直画两边,这会加剧每帧使用新几何体的垃圾收集