Нарисуйте прямоугольник с помощью JMonkey

Как я могу нарисовать простую красную коробку?

1 ответ

Решение

Quad предопределенная сетка (или форма), которая имеет высоту, ширину и лежит на плоскости X/Y. Geometry необходим для рендеринга сетки и Material определит его цвет. Вы также должны синхронизировать положение прямоугольника с положением курсора мыши. Все эти вещи необходимы, и вы всегда будете иметь минимальный объем кода.

public void simpleInitApp() {
    // Create red transparent material
    Material mat = new Material(getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");
    mat.setColor("Color", new ColorRGBA(1, 0, 0, 0.5f)); // 0.5f is the alpha value

    // Activate the use of the alpha channel
    mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Alpha);

    // Create rectangle of size 10x10
    Geometry mouseRect = new Geometry("MouseRect", new Quad(10, 10));
    mouseRect.setMaterial(mat);
    guiNode.attachChild(mouseRect);
}

public void simpleUpdate(float tpf) {
    // Move the rectangle to the cursor position
    Vector2f cursor = inputManager.getCursorPosition();
    guiNode.getChild("MouseRect").setLocalTranslation(cursor.x, cursor.y, 0);
}

Начало прямоугольника находится в его нижнем левом углу. Вы можете использовать смещение для центрирования прямоугольника в позиции курсора:setLocalTranslation(cursor.x - 5, cursor.y - 5, 0),

Больше информации о
Формы: http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:shape
Материалы: http://hub.jmonkeyengine.org/wiki/doku.php/jme3:intermediate:how_to_use_materials

В качестве альтернативы вы также можете заменить курсор мыши на собственное изображение.
Смотрите http://hub.jmonkeyengine.org/forum/topic/custom-mouse-cursor-committed/

Другие вопросы по тегам