2023年10月19日 星期四

m week06

week06 

寫出文字
size(500,500);
textSize(64);
text("Hello World", 100,100);

fill(255,0,0);
text("Red", 100,200);

能在視窗打出文字
void setup(){
  size(500,500);
  textSize(64);
}
String line = "Input: ";
void draw(){
  text(line,100,100);
}
void keyPressed(){
  line += key;
}

不要打出特殊符號
void setup(){
  size(500,500);
  textSize(64);
}
String line = "Input: ";
void draw(){
  text(line,100,100);
}
void keyPressed(){
  if(key>='A' && key<='Z') line += key;
  if(key>='a' && key<='z') line += key;
}

刪掉文字但不能刪掉Input並且不能當機
void setup(){
  size(500,500);
  textSize(64);
}
String line = "";
void draw(){
  background(0);
  text("Input: "+line,100,100);
}
void keyPressed(){
  if(key>='A' && key<='Z') line += key;
  if(key>='a' && key<='z') line += key;
  if(key==BACKSPACE && line.length()>0){ 
  line = line.substring(0, line.length()-1);
  }
}

安裝聲音的函式




在程式中加入聲音
import processing.sound.*;

SoundFile file;
void setup(){
  size(300,300);
  file = new SoundFile(this, "a.mp3");
  file.play();
}
void draw(){
  
}

按數字鍵發出不同的聲音
import processing.sound.*;
SoundFile dadada, good, over;
void setup(){
  size(300,300);
  dadada = new SoundFile(this, "dadadadada.mp3");
  good = new SoundFile(this, "good.mp3");
  over = new SoundFile(this, "over.mp3");
}
void draw(){
  text("press  1, 2, 3",100,100);
 
}
void keyPressed(){
  if(key=='1') dadada.play();
  if(key=='2') good.play();
  if(key=='3') over.play();
}

聲音程式跟按鍵程式結合
import processing.sound.*;
SoundFile da, dingdong, ouch;
void setup(){
  size(800,400);
  textSize(64);
  da = new SoundFile(this, "da.mp3");
  dingdong = new SoundFile(this, "dingdong.mp3");
  ouch = new SoundFile(this, "ouch.mp3");
}
String line = "";
void draw(){
  background(0);
  text("Input: "+line,50,100);
}
void keyPressed(){
  if(key>='A' && key<='Z') { line += key; da.play(); }
  if(key>='a' && key<='z') { line += key; da.play(); }
  if(key==BACKSPACE && line.length()>0){ 
      line = line.substring(0, line.length()-1);
      ouch.play();
  }
  if(key==ENTER){
    dingdong.play();
  }
}
做一個打字刪除的遊戲
先做出點、字還有線
void setup(){
  size(400,600);
  textSize(20);
}
String Q="hello", A="";
float x = 100, y = 100;
void draw(){
  background(0);
  text(Q, x, y);
  ellipse(200,550, 20,20);
  float dx = (200-x), dy = (550-y), d = sqrt(dx*dx+dy*dy)*3;
  x += dx / d;
  y += dy / d;
  if(keyPressed){
    stroke(255,0,0);
    line(200,550, x, y);
  }
}

輸入對的文字就變顏色
void setup(){
  size(400,600);
  textSize(20);
}
String Q="hello", A="";
float x = 100, y = 100;
void draw(){
  background(0);
  fill(#FFFFFF); text(Q, x, y);
  fill(#FF0000); text(A, x, y);
  ellipse(200,550, 20,20);
  float dx = (200-x), dy = (550-y), d = sqrt(dx*dx+dy*dy)*3;
  x += dx / d;
  y += dy / d;
  if(keyPressed){
    stroke(255,0,0);
    line(200,550, x, y);
  }
}
void keyPressed(){
  int i = A.length();
  if( key ==   Q.charAt(i) ) {
    A += key;
  }
}

輸入正確答案字會消失並跑出新的字,每個字的出現位置不同
void setup(){
  size(400,600);
  textSize(20);
  randomQ();
}
void randomQ(){
  int i = int(random(QQ.length));
  Q = QQ[i];
  x = random(0,300);
  y = random(0,100);
}
String [] QQ = { "void", "setup", "float", "string", "background", "fill"};
String Q = "hello", A = "";
float x = 100, y = 100;
void draw(){
  background(0);
  fill(#FFFFFF); text(Q, x, y);
  fill(#FF0000); text(A, x, y);
  ellipse(200,550, 20,20);
  float dx = (200-x), dy = (550-y), d = sqrt(dx*dx+dy*dy)*3;
  x += dx / d;
  y += dy / d;
  if(keyPressed){
    stroke(255,0,0);
    line(200,550, x+textWidth(A), y);
  }
}
void keyPressed(){
  int i = A.length();
  if( key ==   Q.charAt(i) ) {
    A += key;
    if( Q.equals(A) ){
      randomQ();
      A = "";
    }
  }
}




沒有留言:

張貼留言