正在处理 IDE - 双击不同条件下的按钮
Processing IDE - Double Click on Buttons for Different Conditions
我的 LED Ring 上有 4 个区域,我做了 4 个按钮来选择它们。
我希望能够将这些区域用于不同的组合。
所以我的目标是:
单击按钮:选中区域激活。
双击按钮:所选区域无效。
我知道有一个名为 mousePressed() 的函数,但我无法在双击条件下将其实现到我的按钮。
这是我的一段代码 from 处理:
Group AreaGroup = cp5.addGroup("AREAS")
.setPosition(290,50)
.setWidth(150)
.setHeight(30)
.setFont(font2)
.moveTo(SetupGroup);
background(0);
noStroke();
;
cp5.addButton("AREA_1") // The button
.setPosition(-15,10) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
cp5.addButton("AREA_2") // The button
.setPosition(90,10) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
cp5.addButton("AREA_3") // The button
.setPosition(-15,80) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
cp5.addButton("AREA_4") // The button
.setPosition(90,80) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
cp5.addButton("ALL") // The button
.setPosition(190,45) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
void AREA_1(){
println("AREA_1");
if (port != null) port.write("a\n");
}
void AREA_2(){
println("AREA_2");
if (port != null) port.write("b\n");
}
void AREA_3(){
println("AREA_3");
if (port != null) port.write("c\n");
}
void AREA_4(){
println("AREA_4");
if (port != null) port.write("d\n");
}
void ALL(){
println("ALL");
if (port != null) port.write("t\n");
}
这是 Arduino 的代码片段
switch(state){
case 'p':
Serial.println(F("ex."));
break;
case 's':
Serial.println(F("Start"));
start = true;
break;
case '1':
Serial.println(F("Switching to ring #1"));
updateRing1 = true;
updateRing2 = false;
break;
case '2':
Serial.println(F("Switching to ring #2"));
updateRing1 = false;
updateRing2 = true;
break;
case 'a':
Serial.println(F("Area1"));
Area1 = true;
break;
case 'b':
Serial.println(F("Area2"));
Area2 = true;
break;
case 'c':
Serial.println(F("Area3"));
Area3 = true;
break;
case 'd':
Serial.println(F("Area4"));
Area4 = true;
break;
case 't':
Serial.println(F("All the leds are choosen"));
total = true;
Area1 = false;
Area2 = false;
Area3 = false;
Area4 = false;
break;
如果您打算检测双击,请在第一次点击时启动 millis()
计时器,然后在第二次点击后读取第二个 millis()
读数并将其与时间阈值进行比较以检测它.您将需要几个时间变量,一个用于当前值,另一个用于存储前一个值。
您对 mousePressed()
函数到底做了什么尝试?很高兴知道您尝试了什么以及您在哪里失败以帮助您
我的 LED Ring 上有 4 个区域,我做了 4 个按钮来选择它们。 我希望能够将这些区域用于不同的组合。
所以我的目标是:
单击按钮:选中区域激活。
双击按钮:所选区域无效。
我知道有一个名为 mousePressed() 的函数,但我无法在双击条件下将其实现到我的按钮。
这是我的一段代码 from 处理:
Group AreaGroup = cp5.addGroup("AREAS")
.setPosition(290,50)
.setWidth(150)
.setHeight(30)
.setFont(font2)
.moveTo(SetupGroup);
background(0);
noStroke();
;
cp5.addButton("AREA_1") // The button
.setPosition(-15,10) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
cp5.addButton("AREA_2") // The button
.setPosition(90,10) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
cp5.addButton("AREA_3") // The button
.setPosition(-15,80) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
cp5.addButton("AREA_4") // The button
.setPosition(90,80) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
cp5.addButton("ALL") // The button
.setPosition(190,45) // x and y relative to the group
.setSize(90, 50) // (width, height)
.setFont(font)
.moveTo(AreaGroup); // add it to the group
;
void AREA_1(){
println("AREA_1");
if (port != null) port.write("a\n");
}
void AREA_2(){
println("AREA_2");
if (port != null) port.write("b\n");
}
void AREA_3(){
println("AREA_3");
if (port != null) port.write("c\n");
}
void AREA_4(){
println("AREA_4");
if (port != null) port.write("d\n");
}
void ALL(){
println("ALL");
if (port != null) port.write("t\n");
}
这是 Arduino 的代码片段
switch(state){
case 'p':
Serial.println(F("ex."));
break;
case 's':
Serial.println(F("Start"));
start = true;
break;
case '1':
Serial.println(F("Switching to ring #1"));
updateRing1 = true;
updateRing2 = false;
break;
case '2':
Serial.println(F("Switching to ring #2"));
updateRing1 = false;
updateRing2 = true;
break;
case 'a':
Serial.println(F("Area1"));
Area1 = true;
break;
case 'b':
Serial.println(F("Area2"));
Area2 = true;
break;
case 'c':
Serial.println(F("Area3"));
Area3 = true;
break;
case 'd':
Serial.println(F("Area4"));
Area4 = true;
break;
case 't':
Serial.println(F("All the leds are choosen"));
total = true;
Area1 = false;
Area2 = false;
Area3 = false;
Area4 = false;
break;
如果您打算检测双击,请在第一次点击时启动 millis()
计时器,然后在第二次点击后读取第二个 millis()
读数并将其与时间阈值进行比较以检测它.您将需要几个时间变量,一个用于当前值,另一个用于存储前一个值。
您对 mousePressed()
函数到底做了什么尝试?很高兴知道您尝试了什么以及您在哪里失败以帮助您