2014-12-07 2 views
1

Как я могу нарисовать простой красный квадрат?Нарисуйте прямоугольник с JMonkey

+0

Все дисплеи jMonkeyEngine в конечном счете представляют собой сетку. Вы имеете в виду заполненную коробку или только контуры? – 1000ml

ответ

3

Quad - это предопределенная сетка (или форма), которая имеет высоту, ширину и лежит на плоскости X/Y. A 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/

+0

Я добавил альтернативу внизу. Спасибо тебе того же :) – 1000ml

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