把圖片拉進檔案,貼上鍵盤圖片:
PImage img; void setup(){ size(800,600); img=loadImage("keyboard.png"); } void draw(){ image(img,0,600-266); } 滑鼠方框顯示,鍵盤調整,背景透明,顯示座標:PImage img; void setup(){ size(800,600); img=loadImage("keyboard.png"); rectMode(CENTER); } void draw(){ background(#FFFFF2); image(img,0,600-266); fill(255,0,0,128); rect(mouseX,mouseY,28,30,5); } void mousePressed(){ println(mouseX,mouseY); } 設定滑鼠的座標,利用滑鼠點擊鍵盤顯示的座標,複製貼上並增加括號逗號 :PImage img; int [][] pos={{83,454},{119 ,456},{152 ,456},{189 ,457},{221 ,454},{254 ,455},{286 ,456},{322 ,457},{355 ,459},{389 ,457},{90 ,491},{128 ,488},{160 ,491},{196 ,488},{227 ,491},{262 ,490},{298 ,488},{333 ,488},{368 ,489},{110 ,523},{143 ,525},{178 ,523},{213 ,524},{245 ,525},{280 ,524},{315 ,525}}; void setup(){ size(800,600); img=loadImage("keyboard.png"); rectMode(CENTER); } void draw(){ background(#FFFFF2); image(img,0,600-266); fill(255,0,0,128); rect(mouseX,mouseY,28,30,5); } void mousePressed(){ println(mouseX,mouseY); } 鍵盤定位,使用鍵盤測試是否正確:PImage img; int [][]pos={{92,491},{244,524},{178,524},{160,491},{150,457},{197,490},{228,489},{261,488},{323,455},{296,487},{332,491},{365,489},{315,523},{280,524},{354,456},{390,455},{86,455},{184,455},{127,489},{219,456},{289,456},{212,521},{118,455},{141,523},{254,456},{111,525}}; void setup(){ size(800,600); img=loadImage("keyboard.png"); rectMode(CENTER); } void draw(){ background(#FFFFF2); image(img,0,600-266); fill(255,0,0,128); rect(mouseX,mouseY,28,30,5); fill(0,255,0,128); for(int i=0;i<26;i++){ if(pressed[i])rect(pos[i][0],pos[i][1],28,30,5); } } boolean[] pressed=new boolean[26]; void keyPressed(){ if(key>='a'&&key<='z') pressed[key-'a']=true; } void keyReleased(){ if(key>='a'&&key<='z') pressed[key-'a']=false; } void mousePressed(){ println(mouseX,mouseY); } 鍵盤字串,typing,印出來:PImage img; int [][]pos={{92,491},{244,524},{178,524},{160,491},{150,457},{197,490},{228,489},{261,488},{323,455},{296,487},{332,491},{365,489},{315,523},{280,524},{354,456},{390,455},{86,455},{184,455},{127,489},{219,456},{289,456},{212,521},{118,455},{141,523},{254,456},{111,525}}; void setup(){ size(800,600); img=loadImage("keyboard.png"); rectMode(CENTER); } void draw(){ background(#FFFFF2); image(img,0,600-266); fill(255,0,0,128); rect(mouseX,mouseY,28,30,5); fill(0,255,0,128); for(int i=0;i<26;i++){ if(typing.charAt(0)-'a'==i) rect(pos[i][0],pos[i][1],28,30,5); if(pressed[i])rect(pos[i][0],pos[i][1],28,30,5); } fill(0); textSize(50); text(typing,50,50); text(typing.charAt(0),50,100); } String typing="printf"; boolean[] pressed=new boolean[26]; void keyPressed(){ if(key>='a'&&key<='z') pressed[key-'a']=true; } void keyReleased(){ if(key>='a'&&key<='z') pressed[key-'a']=false; } void mousePressed(){ println(mouseX,mouseY); } 可以打字,紅色是要打的字,打出來跳下一個字鍵盤也會顯示字母:PImage img; int [][]pos={{92,491},{244,524},{178,524},{160,491},{150,457},{197,490},{228,489},{261,488},{323,455},{296,487},{332,491},{365,489},{315,523},{280,524},{354,456},{390,455},{86,455},{184,455},{127,489},{219,456},{289,456},{212,521},{118,455},{141,523},{254,456},{111,525}}; void setup(){ size(800,600); img=loadImage("keyboard.png"); rectMode(CENTER); } void draw(){ background(#FFFFF2); image(img,0,600-266); fill(255,0,0,128); rect(mouseX,mouseY,28,30,5); fill(0,255,0,128); for(int i=0;i<26;i++){ if(typing.charAt(ID)-'a'==i) rect(pos[i][0],pos[i][1],28,30,5);
if(pressed[i])rect(pos[i][0],pos[i][1],28,30,5); } textSize(50); fill(0); text(typing.charAt(0),50,100); text(typing,50,50); fill(255,0,0); text(typed+typing.charAt(ID),50,100); fill(0); text(typed,50,100); } String typing="printfprintfprintf"; String typed=""; int ID=0; boolean[] pressed=new boolean[26]; void keyPressed(){ if(key>='a'&&key<='z'){ pressed[key-'a']=true; typed+=key; ID++; } } void keyReleased(){ if(key>='a'&&key<='z') pressed[key-'a']=false; } void mousePressed(){ println(mouseX,mouseY); } 如果字母打錯字不會跳下一個字母,還會閃紅色:PImage img; int [][]pos={{92,491},{244,524},{178,524},{160,491},{150,457},{197,490},{228,489},{261,488},{323,455},{296,487},{332,491},{365,489},{315,523},{280,524},{354,456},{390,455},{86,455},{184,455},{127,489},{219,456},{289,456},{212,521},{118,455},{141,523},{254,456},{111,525}}; void setup(){ size(800,600); img=loadImage("keyboard.png"); rectMode(CENTER); } void draw(){ background(#FFFFF2); image(img,0,600-266); fill(255,0,0,128); rect(mouseX,mouseY,28,30,5); fill(0,255,0,128); for(int i=0;i<26;i++){ if(typing.charAt(ID)-'a'==i) rect(pos[i][0],pos[i][1],28,30,5); if(pressed[i])rect(pos[i][0],pos[i][1],28,30,5); } textSize(50); fill(0); text(typing.charAt(0),50,100); text(typing,50,50); fill(255,0,0); text(typed+typing.charAt(ID),50,100); fill(0); text(typed,50,100); } String typing="printfprintfprintf"; String typed=""; int ID=0; boolean[] pressed=new boolean[26]; void keyPressed(){ if(key>='a'&&key<='z'){ if(key==typing.charAt(ID)){ pressed[key-'a']=true; typed+=key; ID++; }else{ background(255,0,0); } } } void keyReleased(){ if(key>='a'&&key<='z') pressed[key-'a']=false; } void mousePressed(){ println(mouseX,mouseY); } 限定字母長度,不會出現錯誤:PImage img; int [][]pos={{92,491},{244,524},{178,524},{160,491},{150,457},{197,490},{228,489},{261,488},{323,455},{296,487},{332,491},{365,489},{315,523},{280,524},{354,456},{390,455},{86,455},{184,455},{127,489},{219,456},{289,456},{212,521},{118,455},{141,523},{254,456},{111,525}}; void setup(){ size(800,600); img=loadImage("keyboard.png"); rectMode(CENTER); } void draw(){ background(#FFFFF2); image(img,0,600-266); fill(255,0,0,128); rect(mouseX,mouseY,28,30,5); fill(0,255,0,128); for(int i=0;i<26;i++){ if(ID<typing.length()&&typing.charAt(ID)-'a'==i) rect(pos[i][0],pos[i][1],28,30,5); if(pressed[i])rect(pos[i][0],pos[i][1],28,30,5); } textSize(50); fill(0); text(typing.charAt(0),50,100); text(typing,50,50); fill(255,0,0); if(ID<typing.length()) text(typed+typing.charAt(ID),50,100); fill(0); text(typed,50,100); } String typing="printfprintfprintf"; String typed=""; int ID=0; boolean[] pressed=new boolean[26]; void keyPressed(){ if(key>='a'&&key<='z'){ if(ID<typing.length()&&key==typing.charAt(ID)){ pressed[key-'a']=true; typed+=key; ID++; }else{ background(255,0,0); } } } void keyReleased(){ if(key>='a'&&key<='z') pressed[key-'a']=false; } void mousePressed(){ println(mouseX,mouseY); } 增加空白鍵的功能,題目修改成printf is a function:PImage img; int [][]pos={{92,491},{244,524},{178,524},{160,491},{150,457},{197,490},{228,489},{261,488},{323,455},{296,487},{332,491},{365,489},{315,523},{280,524},{354,456},{390,455},{86,455},{184,455},{127,489},{219,456},{289,456},{212,521},{118,455},{141,523},{254,456},{111,525}}; void setup(){ size(800,600); img=loadImage("keyboard.png"); rectMode(CENTER); } void draw(){ background(#FFFFF2); image(img,0,600-266); fill(255,0,0,128); rect(mouseX,mouseY,28,30,5); fill(0,255,0,128); for(int i=0;i<26;i++){ if(ID<typing.length()&&typing.charAt(ID)-'a'==i) rect(pos[i][0],pos[i][1],28,30,5); if(pressed[i])rect(pos[i][0],pos[i][1],28,30,5); } textSize(50); fill(0); text(typing.charAt(0),50,100); text(typing,50,50); fill(255,0,0); if(ID<typing.length()) text(typed+typing.charAt(ID),50,100); fill(0); text(typed,50,100); } String typing="printf is a funtion"; String typed=""; int ID=0; boolean[] pressed=new boolean[26]; void keyPressed(){ if(ID<typing.length()&&key==typing.charAt(ID)){ if(key>='a'&&key<='z'){ pressed[key-'a']=true; typed+=key; ID++; }else if(key==' '){ typed+=key; ID++; }else{ background(255,0,0); } } } void keyReleased(){ if(key>='a'&&key<='z') pressed[key-'a']=false; } void mousePressed(){ println(mouseX,mouseY); }









沒有留言:
張貼留言