HorizontalProgressBar.java now can be filled left to right or the other way
This commit is contained in:
parent
8b9d698acc
commit
f93f801e0b
31
shaders/StylishShaders/HorizontalProgressBar.glsl
Normal file
31
shaders/StylishShaders/HorizontalProgressBar.glsl
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#version 410
|
||||||
|
|
||||||
|
in vec4 color;
|
||||||
|
in vec2 fragCoord;
|
||||||
|
|
||||||
|
out vec4 FragColor;
|
||||||
|
|
||||||
|
uniform float time;
|
||||||
|
uniform float fill;
|
||||||
|
uniform bool leftToRight;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
if (leftToRight){
|
||||||
|
if (fill > fragCoord.x){
|
||||||
|
FragColor = color;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
FragColor = vec4(color.xyz, 0f);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (fill < fragCoord.x){
|
||||||
|
FragColor = color;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
FragColor = vec4(color.xyz, 0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -1,21 +0,0 @@
|
|||||||
#version 410
|
|
||||||
|
|
||||||
in vec4 color;
|
|
||||||
in vec2 fragCoord;
|
|
||||||
|
|
||||||
out vec4 FragColor;
|
|
||||||
|
|
||||||
uniform float time;
|
|
||||||
uniform float fill;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
if (fill > fragCoord.x){
|
|
||||||
FragColor = color;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
FragColor = vec4(color.xyz, 0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -4,11 +4,9 @@ import engine.gui.UIElement;
|
|||||||
import engine.gui.UIElementText;
|
import engine.gui.UIElementText;
|
||||||
import engine.input.*;
|
import engine.input.*;
|
||||||
import engine.math.Vector3f;
|
import engine.math.Vector3f;
|
||||||
import engine.object.Hitbox;
|
|
||||||
import engine.object.ObjectGl;
|
import engine.object.ObjectGl;
|
||||||
import engine.object.ProgressBar;
|
import engine.object.HorizontalProgressBar;
|
||||||
import engine.object.Sprite;
|
import engine.object.Sprite;
|
||||||
import engine.sound.*;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -83,7 +81,7 @@ public class TestEngine {
|
|||||||
UIElementText uiTextCoordP1 = new UIElementText("Boulevard Combattant", 7.0f, 0.0f,0.05f, 25.0f, engine);
|
UIElementText uiTextCoordP1 = new UIElementText("Boulevard Combattant", 7.0f, 0.0f,0.05f, 25.0f, engine);
|
||||||
engine.add_uiElement(uiTextCoordP1);
|
engine.add_uiElement(uiTextCoordP1);
|
||||||
|
|
||||||
ProgressBar healthP1 = new ProgressBar(50f, 10, 1, 100, 100, 100);
|
HorizontalProgressBar healthP1 = new HorizontalProgressBar(50f, 10, 1, 100, 100, 100, false);
|
||||||
UIElement healthP1UI = new UIElement(healthP1, 0f, 1f, engine);
|
UIElement healthP1UI = new UIElement(healthP1, 0f, 1f, engine);
|
||||||
engine.add_uiElement(healthP1UI);
|
engine.add_uiElement(healthP1UI);
|
||||||
float hpCurrent = 100;
|
float hpCurrent = 100;
|
||||||
@ -162,11 +160,11 @@ public class TestEngine {
|
|||||||
frame = 0;
|
frame = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!nextFrame) {
|
// while (!nextFrame) {
|
||||||
nextFrame = System.currentTimeMillis() - lastFrame >= 16.66f;
|
// nextFrame = System.currentTimeMillis() - lastFrame >= 16.66f;
|
||||||
}
|
// }
|
||||||
|
|
||||||
hpCurrent -= 1;
|
hpCurrent -= 0.01;
|
||||||
healthP1.setCurrent(hpCurrent);
|
healthP1.setCurrent(hpCurrent);
|
||||||
|
|
||||||
nextFrame = false;
|
nextFrame = false;
|
||||||
|
@ -4,16 +4,18 @@ import engine.math.Vector3f;
|
|||||||
|
|
||||||
import static org.lwjgl.glfw.GLFW.glfwGetTime;
|
import static org.lwjgl.glfw.GLFW.glfwGetTime;
|
||||||
|
|
||||||
public class ProgressBar extends ObjectGl{
|
public class HorizontalProgressBar extends ObjectGl{
|
||||||
|
|
||||||
private float max;
|
private float max;
|
||||||
private float current;
|
private float current;
|
||||||
|
private int leftToRight;
|
||||||
|
|
||||||
public ProgressBar(float z, float w, float h, float size, float current, float max) {
|
public HorizontalProgressBar(float z, float w, float h, float size, float current, float max, boolean leftToRight) {
|
||||||
super(z, w, h, size, null, new Vector3f(0f, 1f, 0f));
|
super(z, w, h, size, null, new Vector3f(0f, 1f, 0f));
|
||||||
this.current = current;
|
|
||||||
this.max = max;
|
this.max = max;
|
||||||
this.setShader("shaders/StylishShaders/BasicNoTexVert.glsl", "shaders/StylishShaders/ProgressBarFrag.glsl");
|
this.current = current;
|
||||||
|
this.leftToRight = leftToRight ? 1 : 0;
|
||||||
|
this.setShader("shaders/StylishShaders/BasicNoTexVert.glsl", "shaders/StylishShaders/HorizontalProgressBar.glsl");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCurrent(float newCurrent){
|
public void setCurrent(float newCurrent){
|
||||||
@ -32,7 +34,14 @@ public class ProgressBar extends ObjectGl{
|
|||||||
this.shader.enable();
|
this.shader.enable();
|
||||||
|
|
||||||
if (this.useTime) this.shader.setUniform1f("time", (float) glfwGetTime());
|
if (this.useTime) this.shader.setUniform1f("time", (float) glfwGetTime());
|
||||||
this.shader.setUniform1f("fill", (this.current / this.max) * this.getWidth());
|
|
||||||
|
if (this.leftToRight == 1){
|
||||||
|
this.shader.setUniform1f("fill", (this.current / this.max) * this.getWidth());
|
||||||
|
} else {
|
||||||
|
this.shader.setUniform1f("fill", Math.abs(((this.current / this.max) * this.getWidth()) - this.getWidth()));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.shader.setUniform1i("leftToRight", this.leftToRight);
|
||||||
|
|
||||||
this.shader.setUniformMat4f("projection", projection);
|
this.shader.setUniformMat4f("projection", projection);
|
||||||
this.shader.setUniformMat4f("view", view);
|
this.shader.setUniformMat4f("view", view);
|
Loading…
x
Reference in New Issue
Block a user