用JMonkey绘制一个矩形

时间:2014-12-07 02:39:25

标签: java jmonkeyengine

如何画一个简单的红框?

1 个答案:

答案 0 :(得分:3)

Quad是预定义的网格(或形状),其高度,宽度位于X / Y平面上。渲染网格需要GeometryMaterial将定义网格颜色。您还必须将矩形的位置与鼠标光标的位置同步。所有这些都是必要的,你总是会以最少量的代码结束。

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/