week09_1_keyboard_PImage_image
374=圖片的高度 讓這張照片貼齊底部
week09_2_keyboard_mouse_rect_x_y
用出一個方塊調整跟按鍵一樣大小
fill(255,0,0, 128); 128=透明度
week09_3_keyboard_pos_2d_array
按下滑鼠小黑視窗會顯示座標
把座標複製到notepad++
把,取代空格 },{取代換行
把字母按鍵都標出來
week09_4_keyboard_keyPressed_keyRelease_pressed
按下字母對應字母方塊會變綠色
PImage img;
int [][] pos ={{130,444},{372,503},{265,503},{240,443},{225,384},{292,443},{345,442},{400,443},{493,383},{454,443},{509,443},{560,442},{481,503},{427,503},{548,384},{601,383},{117,385},{279,384},{187,442},{332,383},{439,385},{320,503},{171,383},{212,502},{387,385},{158,502}};
void setup(){
size(800,600);
img = loadImage("keyboard.jpg");
rectMode(CENTER);
}
void draw(){
background(#FFFFF2);
image(img,0,600-374);
fill(255,0,0,128);
rect(mouseX,mouseY,45,50,5);
fill(0,255,0,128);
for(int i=0;i<26;i++){
if(pressed[i])rect(pos[i][0],pos[i][1],45,50,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; //沒有按下
}
week09_5_keyboard_String_typing
顯示現在要打的字
PImage img;
int [][] pos ={{130,444},{372,503},{265,503},{240,443},{225,384},{292,443},{345,442},{400,443},{493,383},{454,443},{509,443},{560,442},{481,503},{427,503},{548,384},{601,383},{117,385},{279,384},{187,442},{332,383},{439,385},{320,503},{171,383},{212,502},{387,385},{158,502}};
void setup(){
size(800,600);
img = loadImage("keyboard.jpg");
rectMode(CENTER);
}
void draw(){
background(#FFFFF2);
image(img,0,600-374);
fill(255,0,0,128);
rect(mouseX,mouseY,45,50,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],45,50,5);//現在要打的字是typing.charA(0)
if(pressed[i])rect(pos[i][0],pos[i][1],45,50,5);
}
fill(0); //黑字
textSize(50); //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; //沒有按下
}
week09_6_keyboard_String_typing_typed
要打的字顯示紅色已經打的字是黑色
PImage img;
int [][] pos ={{130,444},{372,503},{265,503},{240,443},{225,384},{292,443},{345,442},{400,443},{493,383},{454,443},{509,443},{560,442},{481,503},{427,503},{548,384},{601,383},{117,385},{279,384},{187,442},{332,383},{439,385},{320,503},{171,383},{212,502},{387,385},{158,502}};
void setup(){
size(800,600);
img = loadImage("keyboard.jpg");
rectMode(CENTER);
}
void draw(){
background(#FFFFF2);
image(img,0,600-374);
fill(255,0,0,128);
rect(mouseX,mouseY,45,50,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],45,50,5);
if(pressed[i])rect(pos[i][0],pos[i][1],45,50,5);
}
textSize(50);
fill(0);//黑
text(typing,50,50);//要打的字
fill(255,0,0);//紅
text(typed+typing.charAt(ID),50,100);//現在要打的字 是typing.charA(ID)
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; //沒有按下
}
week09_7_keyboard_if_wrong_nothing
如果打錯畫面會閃紅色
week09_8_keyboard_if_ID_not_in _length
原本的程式沒辦法打到最後一個字 會超過陣列大小
PImage img;
int [][] pos ={{130,444},{372,503},{265,503},{240,443},{225,384},{292,443},{345,442},{400,443},{493,383},{454,443},{509,443},{560,442},{481,503},{427,503},{548,384},{601,383},{117,385},{279,384},{187,442},{332,383},{439,385},{320,503},{171,383},{212,502},{387,385},{158,502}};
void setup(){
size(800,600);
img = loadImage("keyboard.jpg");
rectMode(CENTER);
}
void draw(){
background(#FFFFF2);
image(img,0,600-374);
fill(255,0,0,128);
rect(mouseX,mouseY,45,50,5);
fill(0,255,0,128);
for(int i=0;i<26;i++){
if(ID<typing.length() && typing.charAt(0)-'a' == i)rect(pos[i][0], pos[i][1],45,50,5);
if(pressed[i])rect(pos[i][0],pos[i][1],45,50,5);
}
textSize(50);
fill(0);//黑
text(typing,50,50);//要打的字
fill(255,0,0);//紅
if(ID<typing.length()) text(typed+typing.charAt(ID),50,100);//現在要打的字 是typing.charA(ID)
fill(0);
text(typed,50,100);//已經打好的
}
String typing = "printfprintfprintf";
String typed = "";
int ID = 0;//第幾個字母要被打
boolean [] pressed = new boolean[26];
void keyPressed(){
if(ID<typing.length() && key>='a'&&key<='z')pressed[key-'a']=true; //按下
if(key == typing.charAt(ID)){ //如果字母正確 就往下
typed += key;
ID++;
}else{
background(255,0,0);
}
}
void keyReleased(){
if(key>='a'&&key<='z')pressed[key-'a']=false; //沒有按下
}
week09_9_keyboard_space_many_words
讓程式可以按空格
PImage img;
int [][] pos ={{130,444},{372,503},{265,503},{240,443},{225,384},{292,443},{345,442},{400,443},{493,383},{454,443},{509,443},{560,442},{481,503},{427,503},{548,384},{601,383},{117,385},{279,384},{187,442},{332,383},{439,385},{320,503},{171,383},{212,502},{387,385},{158,502}};
void setup(){
size(800,600);
img = loadImage("keyboard.jpg");
rectMode(CENTER);
}
void draw(){
background(#FFFFF2);
image(img,0,600-374);
fill(255,0,0,128);
rect(mouseX,mouseY,45,50,5);
fill(0,255,0,128);
for(int i=0;i<26;i++){
if(ID<typing.length() && typing.charAt(0)-'a' == i)rect(pos[i][0], pos[i][1],45,50,5);
if(pressed[i])rect(pos[i][0],pos[i][1],45,50,5);
}
textSize(50);
fill(0);//黑
text(typing,50,50);//要打的字
fill(255,0,0);//紅
if(ID<typing.length()) text(typed+typing.charAt(ID),50,100);//現在要打的字 是typing.charA(ID)
fill(0);
text(typed,50,100);//已經打好的
}
String typing = "printf is a function";
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; //沒有按下
}
沒有留言:
張貼留言