Arrays 处理:有没有办法将我的形状放入一个循环中,并缩短代码?
我正在制作一张忠诚卡,每次鼠标单击svg图像的一部分都会打上disableStyle()的印记 我似乎找不到一种方法,可以在循环中生成pShape并使用getChild()禁用它们的样式 我只有这样才能让它工作。我知道用一些解决方案可以缩短时间。但是怎么做呢Arrays 处理:有没有办法将我的形状放入一个循环中,并缩短代码?,arrays,for-loop,object,svg,processing,Arrays,For Loop,Object,Svg,Processing,我正在制作一张忠诚卡,每次鼠标单击svg图像的一部分都会打上disableStyle()的印记 我似乎找不到一种方法,可以在循环中生成pShape并使用getChild()禁用它们的样式 我只有这样才能让它工作。我知道用一些解决方案可以缩短时间。但是怎么做呢 import processing.svg.*; import java.util.ArrayList; PImage bg; PImage bg2; PShape bolsvg; //PShape bol1,bol2,bol3,bol
import processing.svg.*;
import java.util.ArrayList;
PImage bg;
PImage bg2;
PShape bolsvg;
//PShape bol1,bol2,bol3,bol4,bol5, bol6,bol7,bol8,bol9, bol10,bol11,bol12,bol13;
PShape[] bollen = new PShape[80];
int kwartje = 0;
//ArrayList shapes = new ArrayList();
void setup() {
size(600, 600);
bg = loadImage("bg1.png");
bg2 = loadImage("bg2.png");
bolsvg = loadShape("Bolletjes.svg");
PShape bol1 = bolsvg.getChild("1");
PShape bol2 = bolsvg.getChild("2");
PShape bol3 = bolsvg.getChild("3");
PShape bol4 = bolsvg.getChild("4");
PShape bol5 = bolsvg.getChild("5");
PShape bol6 = bolsvg.getChild("6");
PShape bol7 = bolsvg.getChild("7");
PShape bol8 = bolsvg.getChild("8");
PShape bol9 = bolsvg.getChild("9");
PShape bol10 = bolsvg.getChild("10");
PShape bol11 = bolsvg.getChild("11");
PShape bol12 = bolsvg.getChild("12");
PShape bol13 = bolsvg.getChild("13");
PShape bol14 = bolsvg.getChild("14");
PShape bol15 = bolsvg.getChild("15");
PShape bol16 = bolsvg.getChild("16");
PShape bol17 = bolsvg.getChild("17");
PShape bol18 = bolsvg.getChild("18");
PShape bol19 = bolsvg.getChild("19");
PShape bol20 = bolsvg.getChild("20");
PShape bol21 = bolsvg.getChild("21");
PShape bol22 = bolsvg.getChild("22");
PShape bol23 = bolsvg.getChild("23");
PShape bol24 = bolsvg.getChild("24");
PShape bol25 = bolsvg.getChild("25");
PShape bol26 = bolsvg.getChild("26");
PShape bol27 = bolsvg.getChild("27");
PShape bol28 = bolsvg.getChild("28");
PShape bol29 = bolsvg.getChild("29");
PShape bol30 = bolsvg.getChild("30");
PShape bol31 = bolsvg.getChild("31");
PShape bol32 = bolsvg.getChild("32");
PShape bol33 = bolsvg.getChild("33");
PShape bol34 = bolsvg.getChild("34");
PShape bol35 = bolsvg.getChild("35");
PShape bol36 = bolsvg.getChild("36");
PShape bol37 = bolsvg.getChild("37");
PShape bol38 = bolsvg.getChild("38");
PShape bol39 = bolsvg.getChild("39");
PShape bol40 = bolsvg.getChild("40");
PShape bol41 = bolsvg.getChild("41");
PShape bol42 = bolsvg.getChild("42");
PShape bol43 = bolsvg.getChild("43");
PShape bol44 = bolsvg.getChild("44");
PShape bol45 = bolsvg.getChild("45");
PShape bol46 = bolsvg.getChild("46");
PShape bol47 = bolsvg.getChild("47");
PShape bol48 = bolsvg.getChild("48");
PShape bol49 = bolsvg.getChild("49");
PShape bol50 = bolsvg.getChild("50");
PShape bol51 = bolsvg.getChild("51");
PShape bol52 = bolsvg.getChild("52");
PShape bol53 = bolsvg.getChild("53");
PShape bol54 = bolsvg.getChild("54");
PShape bol55 = bolsvg.getChild("55");
PShape bol56 = bolsvg.getChild("56");
PShape bol57 = bolsvg.getChild("57");
PShape bol58 = bolsvg.getChild("58");
PShape bol59 = bolsvg.getChild("59");
PShape bol60 = bolsvg.getChild("60");
PShape bol61 = bolsvg.getChild("61");
PShape bol62 = bolsvg.getChild("62");
PShape bol63 = bolsvg.getChild("63");
PShape bol64 = bolsvg.getChild("64");
PShape bol65 = bolsvg.getChild("65");
PShape bol66 = bolsvg.getChild("66");
PShape bol67 = bolsvg.getChild("67");
PShape bol68 = bolsvg.getChild("68");
PShape bol69 = bolsvg.getChild("69");
PShape bol70 = bolsvg.getChild("70");
PShape bol71 = bolsvg.getChild("71");
PShape bol72 = bolsvg.getChild("72");
PShape bol73 = bolsvg.getChild("73");
PShape bol74 = bolsvg.getChild("74");
PShape bol75 = bolsvg.getChild("75");
PShape bol76 = bolsvg.getChild("76");
PShape bol77 = bolsvg.getChild("77");
PShape bol78 = bolsvg.getChild("78");
PShape bol79 = bolsvg.getChild("79");
PShape bol80 = bolsvg.getChild("80");
//for(int i =0; i<20;i++){
// bol1 = bolsvg.getChild(i);
//}
bollen[0] = bol1;
bollen[1] = bol2;
bollen[2] = bol3;
bollen[3] = bol4;
bollen[4] = bol5;
bollen[5] = bol6;
bollen[6] = bol7;
bollen[7] = bol8;
bollen[8] = bol9;
bollen[9] = bol10;
bollen[10] = bol11;
bollen[11] = bol12;
bollen[12] = bol13;
bollen[13] = bol14;
bollen[14] = bol15;
bollen[15] = bol16;
bollen[16] = bol17;
bollen[17] = bol18;
bollen[18] = bol19;
bollen[19] = bol20;
bollen[20] = bol21;
bollen[21] = bol22;
bollen[22] = bol23;
bollen[23] = bol24;
bollen[24] = bol25;
bollen[25] = bol26;
bollen[26] = bol27;
bollen[27] = bol28;
bollen[28] = bol29;
bollen[29] = bol30;
bollen[30] = bol31;
bollen[31] = bol32;
bollen[32] = bol33;
bollen[33] = bol34;
bollen[34] = bol35;
bollen[35] = bol36;
bollen[36] = bol37;
bollen[37] = bol38;
bollen[38] = bol39;
bollen[39] = bol40;
bollen[40] = bol41;
bollen[41] = bol42;
bollen[42] = bol43;
bollen[43] = bol44;
bollen[44] = bol45;
bollen[45] = bol46;
bollen[46] = bol47;
bollen[47] = bol48;
bollen[48] = bol49;
bollen[49] = bol50;
bollen[50] = bol51;
bollen[51] = bol52;
bollen[52] = bol53;
bollen[53] = bol54;
bollen[54] = bol55;
bollen[55] = bol56;
bollen[56] = bol57;
bollen[57] = bol58;
bollen[58] = bol59;
bollen[59] = bol60;
bollen[60] = bol61;
bollen[61] = bol62;
bollen[62] = bol63;
bollen[63] = bol64;
bollen[64] = bol65;
bollen[65] = bol66;
bollen[66] = bol67;
bollen[67] = bol68;
bollen[68] = bol69;
bollen[69] = bol70;
bollen[70] = bol71;
bollen[71] = bol72;
bollen[72] = bol73;
bollen[73] = bol74;
bollen[74] = bol75;
bollen[75] = bol76;
bollen[76] = bol77;
bollen[77] = bol78;
bollen[78] = bol79;
bollen[79] = bol80;
// for(int i = 1; i< 80; i++){
// shapes.add(bollen[i]);
// }
//}
}
void draw() {
background(255);
image(bg, 0, 0);
shape(bolsvg, 0, -122);
image(bg2, 30, 82);
//for (int i = 0; i < 10; i++) {
// bollen[i] = kwart.getChild(i);
//}
}
void mousePressed() {
if (mouseButton == LEFT) {
for (int i = 0; i < 20; i++) {
}
kwartje++;
if (kwartje > 79) {
kwartje = 79;
}
bollen[kwartje].disableStyle();
print(kwartje);
} else if (mouseButton == RIGHT) {
if (kwartje < 0) {
kwartje = 0;
}
bollen[kwartje].enableStyle();
kwartje--;
print(kwartje);
} else {
fill(251, 210, 114);
}
}
import processing.svg.*;
导入java.util.ArrayList;
皮马杰bg;
皮美吉bg2;
PShape-bolsvg;
//PShape bol1、bol2、bol3、bol4、bol5、bol6、bol7、bol8、bol9、bol10、bol11、bol12、bol13;
PShape[]bollen=新PShape[80];
int kwartje=0;
//ArrayList形状=新的ArrayList();
无效设置(){
大小(600600);
bg=loadImage(“bg1.png”);
bg2=loadImage(“bg2.png”);
bolsvg=荷载形状(“Bolletjes.svg”);
PShape bol1=bolsvg.getChild(“1”);
PShape bol2=bolsvg.getChild(“2”);
PShape bol3=bolsvg.getChild(“3”);
PShape bol4=bolsvg.getChild(“4”);
PShape bol5=bolsvg.getChild(“5”);
PShape bol6=bolsvg.getChild(“6”);
PShape bol7=bolsvg.getChild(“7”);
PShape bol8=bolsvg.getChild(“8”);
PShape bol9=bolsvg.getChild(“9”);
PShape bol10=bolsvg.getChild(“10”);
PShape bol11=bolsvg.getChild(“11”);
PShape bol12=bolsvg.getChild(“12”);
PShape bol13=bolsvg.getChild(“13”);
PShape bol14=bolsvg.getChild(“14”);
PShape bol15=bolsvg.getChild(“15”);
PShape bol16=bolsvg.getChild(“16”);
PShape bol17=bolsvg.getChild(“17”);
PShape bol18=bolsvg.getChild(“18”);
PShape bol19=bolsvg.getChild(“19”);
PShape bol20=bolsvg.getChild(“20”);
PShape bol21=bolsvg.getChild(“21”);
PShape bol22=bolsvg.getChild(“22”);
PShape bol23=bolsvg.getChild(“23”);
PShape bol24=bolsvg.getChild(“24”);
PShape bol25=bolsvg.getChild(“25”);
PShape bol26=bolsvg.getChild(“26”);
PShape bol27=bolsvg.getChild(“27”);
PShape bol28=bolsvg.getChild(“28”);
PShape bol29=bolsvg.getChild(“29”);
PShape bol30=bolsvg.getChild(“30”);
PShape bol31=bolsvg.getChild(“31”);
PShape bol32=bolsvg.getChild(“32”);
PShape bol33=bolsvg.getChild(“33”);
PShape bol34=bolsvg.getChild(“34”);
PShape bol35=bolsvg.getChild(“35”);
PShape bol36=bolsvg.getChild(“36”);
PShape bol37=bolsvg.getChild(“37”);
PShape bol38=bolsvg.getChild(“38”);
PShape bol39=bolsvg.getChild(“39”);
PShape bol40=bolsvg.getChild(“40”);
PShape bol41=bolsvg.getChild(“41”);
PShape bol42=bolsvg.getChild(“42”);
PShape bol43=bolsvg.getChild(“43”);
PShape bol44=bolsvg.getChild(“44”);
PShape bol45=bolsvg.getChild(“45”);
PShape bol46=bolsvg.getChild(“46”);
PShape bol47=bolsvg.getChild(“47”);
PShape bol48=bolsvg.getChild(“48”);
PShape bol49=bolsvg.getChild(“49”);
PShape bol50=bolsvg.getChild(“50”);
PShape bol51=bolsvg.getChild(“51”);
PShape bol52=bolsvg.getChild(“52”);
PShape bol53=bolsvg.getChild(“53”);
PShape bol54=bolsvg.getChild(“54”);
PShape bol55=bolsvg.getChild(“55”);
PShape bol56=bolsvg.getChild(“56”);
PShape bol57=bolsvg.getChild(“57”);
PShape bol58=bolsvg.getChild(“58”);
PShape bol59=bolsvg.getChild(“59”);
PShape bol60=bolsvg.getChild(“60”);
PShape bol61=bolsvg.getChild(“61”);
PShape bol62=bolsvg.getChild(“62”);
PShape bol63=bolsvg.getChild(“63”);
PShape bol64=bolsvg.getChild(“64”);
PShape bol65=bolsvg.getChild(“65”);
PShape bol66=bolsvg.getChild(“66”);
PShape bol67=bolsvg.getChild(“67”);
PShape bol68=bolsvg.getChild(“68”);
PShape bol69=bolsvg.getChild(“69”);
PShape bol70=bolsvg.getChild(“70”);
PShape bol71=bolsvg.getChild(“71”);
PShape bol72=bolsvg.getChild(“72”);
PShape bol73=bolsvg.getChild(“73”);
PShape bol74=bolsvg.getChild(“74”);
PShape bol75=bolsvg.getChild(“75”);
PShape bol76=bolsvg.getChild(“76”);
PShape bol77=bolsvg.getChild(“77”);
PShape bol78=bolsvg.getChild(“78”);
PShape bol79=bolsvg.getChild(“79”);
PShape bol80=bolsvg.getChild(“80”);
//对于(int i=0;i 79){
kwartje=79;
}
bollen[kwartje]。disableStyle();
印刷品(kwartje);
}else if(鼠标按钮==右侧){
if(kwartje<0){
kwartje=0;
}
bollen[kwartje].enableStyle();
夸杰--;
印刷品(kwartje);
}否则{
填充(251、210、114);
}
}
除了约翰尼·莫普的答案之外,还值得考虑的是,bolsvg的孩子是否只是从“1”到“80”的层次
如果是这样,加载SVG后,只需使用PShape
:
bollen=bolsvg.getChildren();
事实上,由于您似乎只需要此数组和索引,因此您可以使用:
PImage bg;
皮美吉bg2;
PShape-bolsvg;
int kwartje=0;
无效设置(){
大小(600600);
bg=loadImage(“bg1.png”);
bg2=loadImage(“bg2.png”);
bolsvg=荷载形状(“Bolletjes.svg”);
}
作废提款(){
背景(255);
图像(bg,0,0);
形状(波士VG,0,-122);
图像(bg2,30,82);
}
void mousePressed(){
如果(鼠标按钮==左){
kwartje++;
如果(kwartje>79){
kwartje=79;
}
getChild(kwartje).disableStyle();
印刷品(kwartje);
}else if(鼠标按钮==右侧){
夸杰--;
if(kwartje<0){
kwartje=0;
}
getChild(kwartje).enableStyle();
印刷品(kwartje);
}否则{
填充(251、210、114);
}
}
或者,如果存在多个层,且命名至关重要:
PImage bg;
皮美吉bg2;
PShape-bolsvg;
int kwartje=0;
无效设置(){
大小(600600);
bg=loadImage(“bg1.png”);
bg2=loadImage(“bg2.png”);
bolsvg=荷载形状(“Bolletjes.svg”);
}
作废提款(){
背景(255);
图像(bg,0,0);
形状(波士VG,0,-122);
图像(bg2,30,82);
}
void mousePressed(){
如果(鼠标按钮==左){
kwartje++;
如果(kwartje>79){
kwartje=79;
}
boolsvg.getChild(“+(kwartje+1)).disableStyle();
印刷品(kwartje);
}else if(鼠标按钮==右侧){
夸杰--;
if(kwartje<0){