2014-02-06 8 views
0

Я создал способ нарисовать окно выбора на экране, когда вы нажимаете и перетаскиваете мышь. Как в большинстве стратегических игр. Когда мышь нажата, я вызываю метод draw, который создает квадратную сетку и добавляет ее в guiNode. (Плоский экран).JMonkey Selection Square Complication

Хотя мышь все еще нажата, следующий метод обновления называется:

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? Любые альтернативы?

Большое спасибо

ответ

0

Ваш вопрос отсев Culling. , когда ширина (или высота) Квадрата отрицательная, вы увидите обратную сторону объекта, который отбирается по умолчанию PER-TRIANGLE. Geom.setCullHint предназначен для отбрасывания фрагментов (рисовать, когда камера не смотрит на вас), то, что не будет беспокоиться о гий-узле.

Либо заставить квадрат быть положительного размера: Правильно установите положение и размер каждого кадра.

Или используйте mat1.getAdditionalRenderState().setFaceCullMode(FaceCullMode.Off), чтобы сообщить материалу, чтобы нарисовать заднюю сторону. Он будет рисовать обе стороны все время, хотя, что усугубит сбор мусора с использованием новой геометрии в каждом кадре.

 Смежные вопросы

  • Нет связанных вопросов^_^