Added a progressbar class
This commit is contained in:
parent
1ec72d47ba
commit
5ea0a854c8
3 changed files with 87 additions and 31 deletions
77
src/ei/engine/effects/ProgressBar.java
Normal file
77
src/ei/engine/effects/ProgressBar.java
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
package ei.engine.effects;
|
||||
|
||||
import ei.engine.math.Vector2f;
|
||||
import ei.engine.math.Vector4f;
|
||||
import ei.engine.scene.Box;
|
||||
import ei.engine.scene.Node;
|
||||
import ei.engine.scene.Sprite;
|
||||
import ei.engine.texture.Texture;
|
||||
|
||||
public class ProgressBar{
|
||||
private Node progressNode;
|
||||
private Sprite value;
|
||||
private Box bar;
|
||||
private int max;
|
||||
private float width;
|
||||
private float height;
|
||||
|
||||
/**
|
||||
* Creates a selection box with health bar
|
||||
*
|
||||
* @param x The size of the progressbar
|
||||
* @param y The size of the progressbar
|
||||
* @param max The max health of the object
|
||||
*/
|
||||
public ProgressBar(String name, float x, float y, int max){
|
||||
this.max = max;
|
||||
this.width = x;
|
||||
this.height = y;
|
||||
progressNode = new Node(name+"Node");
|
||||
|
||||
Texture tex = new Texture();
|
||||
tex.setColor(new Vector4f(0.5f, 1.0f, 0.5f,1));
|
||||
|
||||
Texture tex2 = new Texture();
|
||||
tex2.setColor(new Vector4f(0.3f, 1.0f, 0.3f, 0.6f));
|
||||
|
||||
value = new Sprite(name+"_Value",tex2);
|
||||
value.setSize(new Vector2f(width,height));
|
||||
value.setLocation(new Vector2f(0,-50));
|
||||
progressNode.add(value);
|
||||
|
||||
bar = new Box(name+"_Bar",tex);
|
||||
bar.setSize(new Vector2f(width,height));
|
||||
bar.setLocation(new Vector2f());
|
||||
progressNode.add(bar);
|
||||
|
||||
}
|
||||
|
||||
public void setBarColor(Vector4f c){
|
||||
bar.getTexture().setColor(c);
|
||||
}
|
||||
|
||||
public Node getNode(){
|
||||
return progressNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the health bar
|
||||
*
|
||||
* @param v The value of the health bar
|
||||
*/
|
||||
public void setValue(int v){
|
||||
value.setSize(new Vector2f(((float)v/max)*width,height));//(v/max)*width
|
||||
value.setLocation(new Vector2f(-width/2+(((float)v/max)*width)/2,0));
|
||||
|
||||
if(((float)v/max) < 0.15f){
|
||||
value.getTexture().setColor(new Vector4f(1.0f, 0f, 0f, 0.6f));
|
||||
}
|
||||
else if(((float)v/max) < 0.50f){
|
||||
value.getTexture().setColor(new Vector4f(1.0f, .95f, 0, 0.6f));
|
||||
}
|
||||
else{
|
||||
value.getTexture().setColor(new Vector4f(0.3f, 1.0f, 0.3f, 0.6f));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue