Browse Source

finished move-In function for bricks in gui

master
Victor Giers 1 year ago
parent
commit
f37f8d1fa0
1 changed files with 31 additions and 29 deletions
  1. 31
    29
      secondapplet.pde

+ 31
- 29
secondapplet.pde View File

@@ -85,7 +85,6 @@ public class SecondApplet extends PApplet {
}

void swapShader(int pos1, int pos2) {
//if (pos1 >= 0 && pos2 < shaderList.size()) {
Collections.swap(shaderList, pos1, pos2);
Collections.swap(bricks, pos1, pos2);
shaderList.get(pos1).pos = pos1;
@@ -95,17 +94,19 @@ public class SecondApplet extends PApplet {
for (int i = 0; i < bricks.size(); i++) {
bricks.get(i).updateSliderPos();
}
//}
}

void moveShader(int pos1, int pos2) {
Shader s = shaderList.remove(pos1);
Brick b = bricks.remove(pos1);

shaderList.add(pos2, s);
bricks.add(pos2, b);
for (int i = 0; i < bricks.size(); i++) {
bricks.get(i).updateSliderPos();
if (pos2 > pos1) {
pos2 -=1;
for (int i = pos1; i < pos2; i++) {
swapShader(i, i+1);
}
} else {
for (int i = pos1; i > pos2; i--) {
swapShader(i, i-1);
}
}
}

@@ -182,6 +183,9 @@ public class SecondApplet extends PApplet {

if (mouseY > y-5 && mouseY < y+5 && pressedBrick != -1) {
hoveringLineAbove = true;
if (pos > 0) {
bricks.get(pos-1).hovering = false;
}
} else if (pos == bricks.size()-1 && mouseY > y+h-5 && mouseY < y+h+5 && pressedBrick != -1) {
hoveringLineBelow = true;
} else {
@@ -223,16 +227,16 @@ public class SecondApplet extends PApplet {
stroke(150);
strokeWeight(1);
line(0, totalBrickHeight+h-1, width, totalBrickHeight+h-1);
if(hoveringLineAbove){
if (hoveringLineAbove) {
stroke(200);
strokeWeight(5);
line(0,y,width,y);
line(0, y, width, y);
}
if(hoveringLineBelow){
if (hoveringLineBelow) {
stroke(200);
strokeWeight(5);
line(0,y+h,width,y+h);
line(0, y+h, width, y+h);
}
}
}
@@ -465,26 +469,24 @@ public class SecondApplet extends PApplet {
void mouseReleased() {
if (pressedBrick != -1) {
bricks.get(pressedBrick).dragging = false;
for (int i = 0; i < bricks.size(); i++) {
bricks.get(i).dragHovering = false;
if (pressedBrick != i && bricks.get(i).hovering && !bricks.get(i).hoveringLineAbove && !bricks.get(i).hoveringLineBelow) {
shaderManager.swapShader(pressedBrick, i);
}
if(pressedBrick != i && bricks.get(i).hoveringLineAbove){
shaderManager.moveShader(pressedBrick,i);
if (pressedBrick != i) {
if (bricks.get(i).hovering && !bricks.get(i).hoveringLineAbove && !bricks.get(i).hoveringLineBelow) {
shaderManager.swapShader(pressedBrick, i);
}

if (pressedBrick != i-1 && bricks.get(i).hoveringLineAbove) {
shaderManager.moveShader(pressedBrick, i);
break;
}
if (bricks.get(i).hoveringLineBelow) {
shaderManager.moveShader(pressedBrick, bricks.size()); //move to last
}
}
if(pressedBrick != i && bricks.get(i).hoveringLineBelow){
shaderManager.moveShader(pressedBrick,bricks.size()-1); //move to last
}
}

if (mouseX > binX && mouseX < binX+binS && mouseY > binY && mouseY < binY+binS) {
println("removing");
shaderManager.removeShader(pressedBrick);

Loading…
Cancel
Save