Function 开关通过,但未完成操作处理 导入处理。串行。*;//添加串行库 串行myPort;//要监视的串行端口 pfontf; 打印机输出; int-pianoBColor=0; int numKeys=6; int-sizeW=900; int sizeH=830; int pianobackgrown=sizeW*8/9; int pianoBackgroundH=sizeH/3; int blackSpace=30; int-Empty1; int-Empty2; int=20; int blackPressed=255; int-whiteUnpressed=255; int blackUnpressed=0; 整数除法器=2; 整数圆度=10; int pianospacgh=(sizeH-pianoBackgroundH); int pianoSpacingW=(sizeW pianobackgrown)/2; int pianoKeyH=pianoBackgroundH-分隔符*2; int pianoKeyW=(780/numKeys)-分隔符*8; int-num; 无效设置() { 大小(900830);//设置窗口大小,将需要硬编码处理3兼容性 背景(0,255,250); println(Serial.list());//列出所有可用的串行端口 //myPort=new Serial(这是Serial.list()[0],115200);//定义输入端口 //myPort.clear(); f=createFont(“Arial”,50,真); RecorderDrawer(); PianoDrawer(); } 无效提款() { 延迟(1000); 钢琴曲(1255200); println(“fr”); 延迟(1000); 钢琴曲(1,0255),; } void PianoPress(int num、int blackKeysColor、int whiteKeysColor) { //1,8黑色钥匙盖在右手上 //7、12黑色钥匙盖在左手上 //2,4,6,9,11黑键 //3,5,10把白色钥匙,两边都有 开关(num) { 案例1: 填充(白色); println(“前”); rect(PianospaceGW+分隔器/2,PianospaceGH+分隔器,pianoKeyW,pianoKeyH,圆度); println(“调试”); 填充(黑色); println(“背面”); rect(PianospaceGW+divider/2+divider+pianoKeyW*2/3-2,Pianospaceh+divider,pianoKeyW/2,pianoKeyH/2,圆度); println(“调试”); 打破 案例2: 填充(黑色); println(“案例2”); rect(PianospaceGW+divider/2+divider+pianoKeyW*2/3-2,Pianospaceh+divider,pianoKeyW/2,pianoKeyH/2,圆度); 延迟(100); 打破 案例3: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW,Pianospaceh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+分隔器/2+平面Y*4/6,平面+分隔器,平面Y/2,平面Y/2,圆度); rect(平面GW+分隔器/2+分隔器+平面Y*10/6,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例4: 填充(黑色); rect(平面GW+分隔器/2+分隔器+平面Y*10/6,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例5: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW*2,Pianospaceh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+分隔器/2+平面Y*16/6+4,平面+分隔器,平面Y/2,平面Y/2,圆度); rect(平面GW+分隔器/2+分隔器+平面Y*10/6,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例6: 填充(黑色); println(“案例6”); rect(平面GW+分隔器/2+平面Y*16/6+4,平面+分隔器,平面Y/2,平面Y/2,圆度); 延迟(100); 打破 案例7: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW*3,Pianospacegh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+平面Y*16/6+4,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例8: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW*4,Pianospaceh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+平面Y*28/6+9,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例9: 填充(黑色); rect(平面GW+分隔器/2+平面Y*28/6+8,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例10: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW*5,Pianospaceh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+分隔器/2+平面Y*28/6,平面+分隔器,平面Y/2,平面Y/2,圆度); rect(平面GW+分隔器/2+平面Y*34/6+10,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例11: 填充(黑色); rect(平面GW+分隔器/2+平面Y*34/6+10,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例12: 填充(白色); println(“案例12”); rect(PianospaceGW+分隔器/2+pianoKeyW*6,Pianospacegh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+平面Y*34/6+10,平面+分隔器,平面Y/2,平面Y/2,圆度); 延迟(100); 打破 } } //设置功能 void PianoDrawer() { 填充(单色); rect(平波面、平波面、平波面、平波面、平波面、圆度); WhiteKeyDrawer(); BlackKeyDrawer(); } void WhiteKeyDrawer() { 对于(int i=0;i

Function 开关通过,但未完成操作处理 导入处理。串行。*;//添加串行库 串行myPort;//要监视的串行端口 pfontf; 打印机输出; int-pianoBColor=0; int numKeys=6; int-sizeW=900; int sizeH=830; int pianobackgrown=sizeW*8/9; int pianoBackgroundH=sizeH/3; int blackSpace=30; int-Empty1; int-Empty2; int=20; int blackPressed=255; int-whiteUnpressed=255; int blackUnpressed=0; 整数除法器=2; 整数圆度=10; int pianospacgh=(sizeH-pianoBackgroundH); int pianoSpacingW=(sizeW pianobackgrown)/2; int pianoKeyH=pianoBackgroundH-分隔符*2; int pianoKeyW=(780/numKeys)-分隔符*8; int-num; 无效设置() { 大小(900830);//设置窗口大小,将需要硬编码处理3兼容性 背景(0,255,250); println(Serial.list());//列出所有可用的串行端口 //myPort=new Serial(这是Serial.list()[0],115200);//定义输入端口 //myPort.clear(); f=createFont(“Arial”,50,真); RecorderDrawer(); PianoDrawer(); } 无效提款() { 延迟(1000); 钢琴曲(1255200); println(“fr”); 延迟(1000); 钢琴曲(1,0255),; } void PianoPress(int num、int blackKeysColor、int whiteKeysColor) { //1,8黑色钥匙盖在右手上 //7、12黑色钥匙盖在左手上 //2,4,6,9,11黑键 //3,5,10把白色钥匙,两边都有 开关(num) { 案例1: 填充(白色); println(“前”); rect(PianospaceGW+分隔器/2,PianospaceGH+分隔器,pianoKeyW,pianoKeyH,圆度); println(“调试”); 填充(黑色); println(“背面”); rect(PianospaceGW+divider/2+divider+pianoKeyW*2/3-2,Pianospaceh+divider,pianoKeyW/2,pianoKeyH/2,圆度); println(“调试”); 打破 案例2: 填充(黑色); println(“案例2”); rect(PianospaceGW+divider/2+divider+pianoKeyW*2/3-2,Pianospaceh+divider,pianoKeyW/2,pianoKeyH/2,圆度); 延迟(100); 打破 案例3: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW,Pianospaceh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+分隔器/2+平面Y*4/6,平面+分隔器,平面Y/2,平面Y/2,圆度); rect(平面GW+分隔器/2+分隔器+平面Y*10/6,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例4: 填充(黑色); rect(平面GW+分隔器/2+分隔器+平面Y*10/6,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例5: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW*2,Pianospaceh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+分隔器/2+平面Y*16/6+4,平面+分隔器,平面Y/2,平面Y/2,圆度); rect(平面GW+分隔器/2+分隔器+平面Y*10/6,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例6: 填充(黑色); println(“案例6”); rect(平面GW+分隔器/2+平面Y*16/6+4,平面+分隔器,平面Y/2,平面Y/2,圆度); 延迟(100); 打破 案例7: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW*3,Pianospacegh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+平面Y*16/6+4,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例8: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW*4,Pianospaceh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+平面Y*28/6+9,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例9: 填充(黑色); rect(平面GW+分隔器/2+平面Y*28/6+8,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例10: 填充(白色); rect(PianospaceGW+分隔器/2+pianoKeyW*5,Pianospaceh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+分隔器/2+平面Y*28/6,平面+分隔器,平面Y/2,平面Y/2,圆度); rect(平面GW+分隔器/2+平面Y*34/6+10,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例11: 填充(黑色); rect(平面GW+分隔器/2+平面Y*34/6+10,平面+分隔器,平面Y/2,平面Y/2,圆度); 打破 案例12: 填充(白色); println(“案例12”); rect(PianospaceGW+分隔器/2+pianoKeyW*6,Pianospacegh+分隔器,pianoKeyW,pianoKeyH,圆度); 填充(黑色); rect(平面GW+平面Y*34/6+10,平面+分隔器,平面Y/2,平面Y/2,圆度); 延迟(100); 打破 } } //设置功能 void PianoDrawer() { 填充(单色); rect(平波面、平波面、平波面、平波面、平波面、圆度); WhiteKeyDrawer(); BlackKeyDrawer(); } void WhiteKeyDrawer() { 对于(int i=0;i,function,switch-statement,processing,Function,Switch Statement,Processing,你不应该像那样从draw()函数内部调用delay()函数。这会导致你每2秒只能得到1帧,这肯定会弄乱你的用户输入 相反,可以使用millis()或frameCount变量来执行基于时间的操作。您不应该从draw()函数内部调用delay()函数。这会导致您每2秒只获得1帧,这肯定会弄乱用户输入 相反,可以使用millis()或frameCount变量来执行基于时间的操作

你不应该像那样从
draw()
函数内部调用
delay()
函数。这会导致你每2秒只能得到1帧,这肯定会弄乱你的用户输入


相反,可以使用
millis()
frameCount
变量来执行基于时间的操作。

您不应该从
draw()
函数内部调用
delay()
函数。这会导致您每2秒只获得1帧,这肯定会弄乱用户输入

相反,可以使用
millis()
frameCount
变量来执行基于时间的操作