i need show hp above monster
got the idea to draw a line
found this code
import com.jme3.app.SimpleApplication;
import com.jme3.asset.AssetManager;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.Mesh;
import com.jme3.scene.Node;
import com.jme3.scene.VertexBuffer;
import com.jme3.scene.shape.Box;
import com.jme3.util.BufferUtils;
public class Main extends SimpleApplication {
public static void main(String[] args) {
Main app = new Main();
app.start();
}
@Override
public void simpleInitApp() {
Vector3f[] lineVerticies=new Vector3f[5];
lineVerticies[0]=new Vector3f(2,0,0);
lineVerticies[1]=new Vector3f(-1,0,1);
lineVerticies[2]=new Vector3f(0,1,1);
lineVerticies[3]=new Vector3f(1,1,1);
lineVerticies[4]=new Vector3f(1,4,0);
plotLine(lineVerticies,ColorRGBA.Blue);
}
public void plotLine(Vector3f[] lineVerticies, ColorRGBA lineColor){
Mesh m = new Mesh();
m.setMode(Mesh.Mode.Lines);
m.setBuffer(VertexBuffer.Type.Position, 3, BufferUtils.createFloatBuffer(lineVerticies));
short[] indexes=new short[2*lineVerticies.length]; //Indexes are in pairs, from a vertex and to a vertex
for(short i=0;i<lineVerticies.length-1;i++){
indexes[2*i]=i;
indexes[2*i+1]=(short)(i+1);
}
m.setBuffer(VertexBuffer.Type.Index, 2, indexes);
m.updateBound();
m.updateCounts();
Geometry geo=new Geometry("line",m);
Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
mat.setColor("Color", lineColor);
geo.setMaterial(mat);
rootNode.attachChild(geo);
}
@Override
public void simpleUpdate(float tpf) {
//TODO: add update code
}
@Override
public void simpleRender(RenderManager rm) {
//TODO: add render code
}
}
but how to make the line thick?
maybe there is some other way to do it?