This commit is contained in:
keizaal
2021-06-17 15:43:03 +02:00
133 changed files with 393 additions and 60 deletions

View File

@ -9,13 +9,15 @@ public class HorizontalProgressBar extends ObjectGl {
private float max;
private float current;
private int leftToRight;
private boolean useHeight;
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));
this.max = max;
this.current = current;
this.leftToRight = leftToRight ? 1 : 0;
this.setShader("shaders/StylishShaders/BasicNoTexVert.glsl", "shaders/StylishShaders/HorizontalProgressBar.glsl");
this.useHeight = false;
this.setShader("shaders/StylishShaders/BasicNoTexVert.glsl", "shaders/StylishShaders/HorizontalProgressBarFrag.glsl");
}
public void setCurrent(float newCurrent) {
@ -26,6 +28,10 @@ public class HorizontalProgressBar extends ObjectGl {
this.max = newMax;
}
public void setUseHeight(boolean b){
this.useHeight = b;
}
protected void uniformInjection() {
if (this.useTime) this.shader.setUniform1f("time", (float) glfwGetTime());
@ -35,6 +41,10 @@ public class HorizontalProgressBar extends ObjectGl {
this.shader.setUniform1f("fill", Math.abs(((this.current / this.max) * this.getWidth()) - this.getWidth()));
}
if (this.useHeight) {
this.shader.setUniform1f("height", this.height);
}
this.shader.setUniform1i("leftToRight", this.leftToRight);
this.shader.setUniformMat4f("projection", projection);

View File

@ -7,10 +7,42 @@ import engine.object.ObjectGl;
import gameplay.frames.Frame;
import gameplay.hitboxes.*;
import java.lang.reflect.Array;
import java.util.ArrayList;
public class BlueBaseFrames {
/*
TO COPY PASTE FOR EASY frame function generation :
private static Frame ExampleFrame(){
//movement data
double moveX = 0.0;
double moveY = 0.0;
//cancelData
boolean normalC = false;
boolean specialC = false;
boolean jumpC = false;
boolean moveC = false;
boolean dashC = false;
//hitbox lists
ArrayList<Active_HitBox> ahb = new ArrayList<Active_HitBox>();
ArrayList<Active_throw_Hitbox> athb = new ArrayList<Active_throw_Hitbox>;
ArrayList<Passive_HitBox> phb = new ArrayList<Passive_HitBox>();
ArrayList<Passive_throw_HitBox> pthb = new ArrayList<Passive_throw_HitBox>();
//generate hitboxes here and then use ArrayList add method to add them to the correct list
Push_HitBox bStandPB1 = new Push_HitBox(70,70,150,500);
Frame f = new Frame(moveX,moveY,phb,ahb,pthb,athb,bStandPB1,normalC,specialC,jumpC,moveC,dashC);
//set sprite data on sheet
f.setSpriteWrap(0,0,138,138);
return f;
}
*/
private static Frame generateStandFrame1(){
Passive_HitBox bStandPHB1 = new Passive_HitBox(70,70,150,500);
Passive_throw_HitBox bStandPTHB1 = new Passive_throw_HitBox(70,400,150,100);
@ -21,7 +53,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,0.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(0,0,102,120);
blueStandframe1.setSpriteWrap(0,0,138,138);
return blueStandframe1;
}
@ -35,12 +67,18 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,0.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(0,0,102,120);
blueStandframe1.setSpriteWrap(138,0,138,138);
return blueStandframe1;
}
protected static Frame[] blueStandFrames() {
Frame[] sf = {generateStandFrame1(),generateStandFrame2()};
Frame[] sf = new Frame[6];
sf[0] = generateStandFrame1();
sf[1] = generateStandFrame1();
sf[2] = generateStandFrame1();
sf[3] = generateStandFrame2();
sf[4] = generateStandFrame2();
sf[5] = generateStandFrame2();
return sf;
}
@ -54,7 +92,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,0.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(102,120,102,120);
blueStandframe1.setSpriteWrap(138,138*3,138,138);
return blueStandframe1;
}
@ -73,7 +111,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(18.0,0.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(816,0,102,120);
blueStandframe1.setSpriteWrap(138*7,0,138,138);
return blueStandframe1;
}
@ -87,7 +125,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(-18.0,0.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(816,0,102,120);
blueStandframe1.setSpriteWrap(138*7,0,138,138);
return blueStandframe1;
}
@ -112,11 +150,39 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(18.0,10.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(816,0,102,120);
blueStandframe1.setSpriteWrap(138*6,0,138,138);
return blueStandframe1;
}
private static Frame GenerateForwardJumpFrame2(){
Passive_HitBox bStandPHB1 = new Passive_HitBox(70,70,150,500);
Passive_throw_HitBox bStandPTHB1 = new Passive_throw_HitBox(70,400,150,100);
Push_HitBox bStandPB1 = new Push_HitBox(70,70,150,500);
ArrayList<Passive_HitBox> phb = new ArrayList<Passive_HitBox>();
ArrayList<Passive_throw_HitBox> pthb = new ArrayList<Passive_throw_HitBox>();
phb.add(bStandPHB1);
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(9.0,10.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(138*7,0,138,138);
return blueStandframe1;
}
private static Frame GenerateForwardJumpFrame3(){
Passive_HitBox bStandPHB1 = new Passive_HitBox(70,70,150,500);
Passive_throw_HitBox bStandPTHB1 = new Passive_throw_HitBox(70,400,150,100);
Push_HitBox bStandPB1 = new Push_HitBox(70,70,150,500);
ArrayList<Passive_HitBox> phb = new ArrayList<Passive_HitBox>();
ArrayList<Passive_throw_HitBox> pthb = new ArrayList<Passive_throw_HitBox>();
phb.add(bStandPHB1);
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(-9.0,10.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(138*7,0,138,138);
return blueStandframe1;
}
private static Frame GenerateForwardJumpFrame4(){
Passive_HitBox bStandPHB1 = new Passive_HitBox(70,70,150,500);
Passive_throw_HitBox bStandPTHB1 = new Passive_throw_HitBox(70,400,150,100);
Push_HitBox bStandPB1 = new Push_HitBox(70,70,150,500);
@ -126,18 +192,24 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(-18.0,10.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(816,0,102,120);
blueStandframe1.setSpriteWrap(138*6,0,138,138);
return blueStandframe1;
}
protected static Frame[] blueForwardJump() {
Frame[] jF = new Frame[40];
for(int i = 0; i < jF.length/2; i++) {
for(int i = 0; i < jF.length/4; i++) {
jF[i] = GenerateForwardJumpFrame1();
}
for(int i = jF.length/2; i < jF.length; i++) {
for(int i = jF.length/4; i < jF.length/2; i++) {
jF[i] = GenerateForwardJumpFrame2();
}
for(int i = jF.length/2; i < jF.length/(3/4); i++) {
jF[i] = GenerateForwardJumpFrame3();
}
for(int i = jF.length/(3/4); i < jF.length; i++) {
jF[i] = GenerateForwardJumpFrame4();
}
return jF;
}
@ -151,21 +223,10 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(18.0,-10.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(816,0,102,120);
blueStandframe1.setSpriteWrap(138*6,0,138,138);
return blueStandframe1;
}
protected static Frame[] blueBackJump() {
Frame[] jF = new Frame[40];
for(int i = 0; i < jF.length/2; i++) {
jF[i] = BackJumpFrame1();
}
for(int i = jF.length/2; i < jF.length; i++) {
jF[i] = BackJumpFrame2();
}
return jF;
}
private static Frame BackJumpFrame2(){
Passive_HitBox bStandPHB1 = new Passive_HitBox(70,70,150,500);
Passive_throw_HitBox bStandPTHB1 = new Passive_throw_HitBox(70,400,150,100);
@ -174,12 +235,58 @@ public class BlueBaseFrames {
ArrayList<Passive_throw_HitBox> pthb = new ArrayList<Passive_throw_HitBox>();
phb.add(bStandPHB1);
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(-18.0,-10.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
Frame blueStandframe1 = new Frame(9.0,-10.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(816,0,102,120);
blueStandframe1.setSpriteWrap(138*7,0,138,138);
return blueStandframe1;
}
private static Frame BackJumpFrame3(){
Passive_HitBox bStandPHB1 = new Passive_HitBox(70,70,150,500);
Passive_throw_HitBox bStandPTHB1 = new Passive_throw_HitBox(70,400,150,100);
Push_HitBox bStandPB1 = new Push_HitBox(70,70,150,500);
ArrayList<Passive_HitBox> phb = new ArrayList<Passive_HitBox>();
ArrayList<Passive_throw_HitBox> pthb = new ArrayList<Passive_throw_HitBox>();
phb.add(bStandPHB1);
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(-9.0,-10.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(138*7,0,138,138);
return blueStandframe1;
}
private static Frame BackJumpFrame4(){
Passive_HitBox bStandPHB1 = new Passive_HitBox(70,70,150,500);
Passive_throw_HitBox bStandPTHB1 = new Passive_throw_HitBox(70,400,150,100);
Push_HitBox bStandPB1 = new Push_HitBox(70,70,150,500);
ArrayList<Passive_HitBox> phb = new ArrayList<Passive_HitBox>();
ArrayList<Passive_throw_HitBox> pthb = new ArrayList<Passive_throw_HitBox>();
phb.add(bStandPHB1);
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(-18.0,-10.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,false,false,false,false,false);
blueStandframe1.setSpriteWrap(138*6,0,138,138);
return blueStandframe1;
}
protected static Frame[] blueBackJump() {
Frame[] jF = new Frame[40];
for(int i = 0; i < jF.length/4; i++) {
jF[i] = BackJumpFrame1();
}
for(int i = jF.length/4; i < jF.length/2; i++) {
jF[i] = BackJumpFrame2();
}
for(int i = jF.length/2; i < jF.length/(3/4); i++) {
jF[i] = BackJumpFrame3();
}
for(int i = jF.length/(3/4); i < jF.length; i++) {
jF[i] = BackJumpFrame4();
}
return jF;
}
private static Frame walkForwardFrame1(){
Passive_HitBox bStandPHB1 = new Passive_HitBox(70,70,150,500);
Passive_throw_HitBox bStandPTHB1 = new Passive_throw_HitBox(70,400,150,100);
@ -190,7 +297,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,8.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(204,0,102,120);
blueStandframe1.setSpriteWrap(138*3,0,138,138);
return blueStandframe1;
}
@ -204,7 +311,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,8.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(306,0,102,120);
blueStandframe1.setSpriteWrap(138*3,0,138,138);
return blueStandframe1;
}
@ -218,7 +325,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,8.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(408,0,102,120);
blueStandframe1.setSpriteWrap(138*4,0,138,138);
return blueStandframe1;
}
@ -232,7 +339,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,8.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(510,0,102,120);
blueStandframe1.setSpriteWrap(138*5,0,138,138);
return blueStandframe1;
}
@ -265,7 +372,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,-8.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(220,0,112,120);
blueStandframe1.setSpriteWrap(138*5,0,138,138);
return blueStandframe1;
}
@ -279,7 +386,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,-8.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(330,0,112,120);
blueStandframe1.setSpriteWrap(138*4,0,138,138);
return blueStandframe1;
}
@ -293,7 +400,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,-8.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(420,0,112,120);
blueStandframe1.setSpriteWrap(138*3,0,138,138);
return blueStandframe1;
}
@ -307,7 +414,7 @@ public class BlueBaseFrames {
pthb.add(bStandPTHB1);
Frame blueStandframe1 = new Frame(0.0,-8.0,phb,new ArrayList<Active_HitBox>(),pthb,new ArrayList<Active_throw_Hitbox>(),
bStandPB1,true,true,true,true,true);
blueStandframe1.setSpriteWrap(500,0,112,120);
blueStandframe1.setSpriteWrap(138*3,0,138,138);
return blueStandframe1;
}
@ -325,37 +432,69 @@ public class BlueBaseFrames {
Engine engine = new Engine(640, 480, new Vector3f(4.0f, 3.0f));
engine.init();
String path = "textures/Sprite.png";
String pathToBG = "textures/background_beach.png";
Vector3f BLUE = new Vector3f(0f,0f,1f); //passive_hit
Vector3f RED = new Vector3f(1f,0f,0f); //active_hit
Vector3f GREEN = new Vector3f(0f,1f,0f); //passive_throw
Vector3f YELLOW = new Vector3f(1f,1f,0f); //Active throw
Vector3f PURPLE = new Vector3f(1f,0f,1f); //pushbox
String path = "textures/Sprite_sans_grille_9comp.png";
String pathToBG = "textures/arena1.png";
Frame f = generateStandFrame1();
ObjectGl blue = new ObjectGl(0f, 60f, 80f, 5f, path, null);
ObjectGl blue = new ObjectGl(0f, 138f, 138f, 4f, path, null);
blue.setTextureWrap(f.getSprite()[0], f.getSprite()[1], f.getSprite()[2], f.getSprite()[3]);
blue.translate(new Vector3f(-750,200,0));
int posX = -750;
int posY = 200;
engine.add_objectGl(blue);
int counter = 0;
long ts1, ts2;
float posZ = 11;
while(counter < 1000) {
ts1 = System.currentTimeMillis();
posZ = 11;
engine.update();
engine.render();
counter++;
for(Passive_HitBox h: f.getPassHitBox()){
Hitbox hh = new Hitbox(posZ,h.getSize_x(),h.getSize_y(),5f,new Vector3f(1,0,0));
engine.add_objectGl(hh);
hh.translate(new Vector3f(-750+h.getPosY(),200+h.getPosY()));
}
blue.translate(new Vector3f(0,0,0));
ts2 = System.currentTimeMillis();
while(ts2-ts1 < 1000/20) {
ts2 = System.currentTimeMillis();
}
blue.translate(new Vector3f(posX,posY,0));
engine.add_objectGl(blue);
float posZ = 11f;
for(Passive_HitBox h: f.getPassHitBox()){
Hitbox hh = new Hitbox(posZ,h.getSize_x(),h.getSize_y(),1f,BLUE);
engine.add_objectGl(hh);
hh.translate(new Vector3f(posX+h.getPosX(),posY+h.getPosY()));
posZ++;
}
for(Active_HitBox h: f.getActHitBox()){
Hitbox hh = new Hitbox(posZ,h.getSize_x(),h.getSize_y(),1f,RED);
engine.add_objectGl(hh);
hh.translate(new Vector3f(posX+h.getPosX(),posY+h.getPosY()));
posZ++;
}
for(Passive_throw_HitBox h: f.getPassThrowHitBox()){
Hitbox hh = new Hitbox(posZ,h.getSize_x(),h.getSize_y(),1f,GREEN);
engine.add_objectGl(hh);
hh.translate(new Vector3f(posX+h.getPosX(),posY+h.getPosY()));
posZ++;
}
for(Active_throw_Hitbox h: f.getActThrowHitBox()){
Hitbox hh = new Hitbox(posZ,h.getSize_x(),h.getSize_y(),1f,YELLOW);
engine.add_objectGl(hh);
hh.translate(new Vector3f(posX+h.getPosX(),posY+h.getPosY()));
posZ++;
}
Push_HitBox phb = f.getPushHitBox();
Hitbox hh = new Hitbox(posZ,phb.getSize_x(),phb.getSize_y(),1f,PURPLE);
engine.add_objectGl(hh);
hh.translate(new Vector3f(posX+phb.getPosX(),posY+phb.getPosY()));
engine.update();
engine.render();
double ts1 = System.currentTimeMillis();
double ts2 = System.currentTimeMillis();
while(ts2 - ts1 < 60000) {
ts2 = System.currentTimeMillis();
}
}
}

View File

@ -110,7 +110,7 @@ public class InputBuffer {
try {
ret = this.inputList[pos].containsButtonTab(command[command.length - 1]);
} catch (ArrayIndexOutOfBoundsException e ) {
return true;
return false;
}
for(int i = command.length - 2; i >= 0 && ret; i--) {
backCounter = 1;

View File

@ -190,7 +190,8 @@ public class match {
engine.add_uiElement(coordP2);
// Barre de vie
healthBarP1Obj = new HorizontalProgressBar(80f, 8.5f, 0.4f, 100f, p1.getCurrentHP(), p1.getMaxHP(), false);
healthBarP1Obj.setColorVerticalGradient(new Vector3f(39f/255f, 201f/255f, 30f/255f), new Vector3f(19f/255f, 89f/255f, 15f/255f));
healthBarP1Obj.setShader("shaders/StylishShaders/BasicNoTexVert.glsl", "shaders/StylishShaders/HorizontalProgressBarGradientSquareFrag.glsl");
healthBarP1Obj.setUseHeight(true);
healthBarP1 = new UIElement(healthBarP1Obj, 0.0138f, 0.980f, engine);
healthBarP2Obj = new HorizontalProgressBar(80f, 8.5f, 0.4f, 100f, p2.getCurrentHP(), p2.getMaxHP(), true);
healthBarP2Obj.setColorVerticalGradient(new Vector3f(39f/255f, 201f/255f, 30f/255f), new Vector3f(19f/255f, 89f/255f, 15f/255f));
@ -249,7 +250,7 @@ public class match {
//end round
case 11:
endRound();
if(roundsWonP1 >= 2||roundsWonP2 >= 2) { endMatch();} //TODO : will probably need to specify more
if(roundsWonP1 >= 2 || roundsWonP2 >= 2) { endMatch();} //TODO : will probably need to specify more
else{acCode = 0;}
break;