ソースを参照

finished move-In function for bricks in gui

master
Victor Giers 1年前
コミット
f37f8d1fa0
1個のファイルの変更31行の追加29行の削除
  1. 31
    29
      secondapplet.pde

+ 31
- 29
secondapplet.pde ファイルの表示

} }


void swapShader(int pos1, int pos2) { void swapShader(int pos1, int pos2) {
//if (pos1 >= 0 && pos2 < shaderList.size()) {
Collections.swap(shaderList, pos1, pos2); Collections.swap(shaderList, pos1, pos2);
Collections.swap(bricks, pos1, pos2); Collections.swap(bricks, pos1, pos2);
shaderList.get(pos1).pos = pos1; shaderList.get(pos1).pos = pos1;
for (int i = 0; i < bricks.size(); i++) { for (int i = 0; i < bricks.size(); i++) {
bricks.get(i).updateSliderPos(); bricks.get(i).updateSliderPos();
} }
//}
} }


void moveShader(int pos1, int pos2) { 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);
}
} }
} }




if (mouseY > y-5 && mouseY < y+5 && pressedBrick != -1) { if (mouseY > y-5 && mouseY < y+5 && pressedBrick != -1) {
hoveringLineAbove = true; 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) { } else if (pos == bricks.size()-1 && mouseY > y+h-5 && mouseY < y+h+5 && pressedBrick != -1) {
hoveringLineBelow = true; hoveringLineBelow = true;
} else { } else {
stroke(150); stroke(150);
strokeWeight(1); strokeWeight(1);
line(0, totalBrickHeight+h-1, width, totalBrickHeight+h-1); line(0, totalBrickHeight+h-1, width, totalBrickHeight+h-1);
if(hoveringLineAbove){
if (hoveringLineAbove) {
stroke(200); stroke(200);
strokeWeight(5); strokeWeight(5);
line(0,y,width,y);
line(0, y, width, y);
} }
if(hoveringLineBelow){
if (hoveringLineBelow) {
stroke(200); stroke(200);
strokeWeight(5); strokeWeight(5);
line(0,y+h,width,y+h);
line(0, y+h, width, y+h);
} }
} }
} }
void mouseReleased() { void mouseReleased() {
if (pressedBrick != -1) { if (pressedBrick != -1) {
bricks.get(pressedBrick).dragging = false; bricks.get(pressedBrick).dragging = false;
for (int i = 0; i < bricks.size(); i++) { for (int i = 0; i < bricks.size(); i++) {
bricks.get(i).dragHovering = false; 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) { if (mouseX > binX && mouseX < binX+binS && mouseY > binY && mouseY < binY+binS) {
println("removing"); println("removing");
shaderManager.removeShader(pressedBrick); shaderManager.removeShader(pressedBrick);

読み込み中…
キャンセル
保存