2023年11月9日 星期四

Week09

 PImage img;//讀入圖片

void setup(){

  size(800,600);

  img = loadImage("keyboard.png");

}

void draw(){

  image(img,0,600-266);//將圖片放特定位子

}


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(){
  print( mouseX, mouseY );
}//印出XY座標


//新增一個鍵盤按鍵的座標陣列

int [][] pos={{253,457},{230,491},{183,456},{159,490},{365,490}};

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<5;i++){

    rect(pos[i][0],pos[i][1],28,30,5);

  }//重複印出方形

}


boolean[] pressed = new boolean [26];

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);
  }
}
void mousePressed(){
  if(key>='a'&&key<='z') pressed[key-'a']=true;
}
void mouseReleased(){
  if(key>='a'&&key<='z') pressed[key-'a']=false;
}




 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";

PImage img;
int[][]pos = {{91,491},{246,525},{179,524},{162,491},{153,458},{195,490},{229,489},{263,491},{322,456},{298,491},{332,490},{366,491},{315,525},{279,525},{357,456},{390,457},{84,456},{185,456},{127,490},{219,457},{288,457},{212,523},{118,457},{144,523},{254,457},{108,524}};
boolean[] pressed = new boolean [26];
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,50,50);
  fill(255,0,0);
  text(typed+typing.charAt(ID),50,100);
  fill(0);
  text(typed,50,100);
}
String typing ="printf";
String typed ="";
int ID = 0;
void mousePressed(){
  if(key>='a'&&key<='z') {
    pressed[key-'a']=true;
    typed+= key;
    ID++;
  }
}
void mouseReleased(){
  if(key>='a'&&key<='z') pressed[key-'a']=false;
}

目前能夠打字 但完成會當機

if(key>='a'&&key<='z') {//字母正確就繼續
    if(key==typing.charAt(ID)){
      pressed[key-'a']=true;
      typed+= key;
      ID++;
    }else{//
      background(255,0,0);
    }

最終作品
PImage img;
int[][]pos = {{91,491},{246,525},{179,524},{162,491},{153,458},{195,490},{229,489},{263,491},{322,456},{298,491},{332,490},{366,491},{315,525},{279,525},{357,456},{390,457},{84,456},{185,456},{127,490},{219,457},{288,457},{212,523},{118,457},{144,523},{254,457},{108,524}};
boolean[] pressed = new boolean [26];
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,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 function";
String typed ="";
int ID = 0;
void mousePressed(){
  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 mouseReleased(){
  if(key>='a'&&key<='z') pressed[key-'a']=false;
}





沒有留言:

張貼留言