2023年10月19日 星期四

KZNK Week06 單字遊戲

  Week06-1  TEXT

開啟processing,輸入以下程式碼
size(500,500);
textSize(64);
text("Hello Word",100,100);

fill(255,0,0);
text("RED",100,200);
命名week06_1_text_string
印字




















  Week06-2  KEY

開啟processing,輸入以下程式碼
命名week06_2_keyPressed_string
用鍵盤輸入字串,但特殊符號無法顯示





















  Week06-3 A~Z

開啟processing,輸入以下程式碼
命名week06_3_if_alphabet
變成只能輸入A~Z和a~z




















  Week06-4 BACKSPACE

開啟processing,輸入以下程式碼
void setup(){
  size(800,500);
  textSize(64);
}
String line = "";
void draw(){
  background(0);
  text("Input: "+line,50,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);
  }
}
命名week06_4_BACKSPACE
可用刪減字串長度應用backspace
(圖上錯誤:line=line.substring...)



















  Week06-5 MUSIC FILE PLAY

開啟processing,輸入以下程式碼
命名week06_5_music
開程式素描本-使用函式庫-Contribution Manager-搜尋Sound-Install


下載一個音檔命名為a.mp3拖入畫面中,可以撥放音樂

  Week06-6 3SOUND

開啟processing,輸入以下程式碼
import processing.sound.*;
SoundFile a,b,c;
void setup(){
  size(300,300);
  a=new SoundFile(this,"a.mp3");
  b=new SoundFile(this,"b.mp3");
  c=new SoundFile(this,"c.mp3");
}
void draw(){
  text("press 1,2,3",100,100);
}
void keyPressed(){
  if(key=='1') a.play();
  if(key=='2') b.play();
  if(key=='3') c.play();
}
命名week06_6_3sound_chose
可以按a,b,c鍵撥放三種聲音




















Week06-7 KEY/SOUND

開啟processing,輸入以下程式碼
import processing.sound.*;
SoundFile a,b,c;
void setup(){
  size(800,500);
  textSize(64);
  a=new SoundFile(this,"a.mp3");
  b=new SoundFile(this,"b.mp3");
  c=new SoundFile(this,"c.mp3");
}
String line = "";
void draw(){
  background(0);
  text("Input: "+line,50,100);
}
void keyPressed(){
  if(key>='A' && key<='Z') {line+= key; a.play();}
  if(key>='a' && key<='z') {line+= key; a.play();}
  if(key==BACKSPACE && line.length()>0){
    line = line.substring(0,line.length()-1);
    c.play();
  }
  if(key==ENTER){
    println("ENTER");
    line += key;
    b.play();
  }
}
命名week06_7_key_a_ENTER
將兩個程式合在一起,打字時可以發出不同音效



















Week06-8 SHOOT X/Y

開啟processing,輸入以下程式碼
命名week06_8_game_shoot_x_y
hello字串往下漂移
















Week06-9 QA/RED

開啟processing,輸入以下程式碼
命名week06_9_game_QA
Qustion是白色,輸入Answer變紅色
(把射擊器變回白色在ellipse前fill顏色即可)


















Week06-10 GAME

開啟processing,輸入以下程式碼
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","apple","monkey","size","background"};
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,200);
  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;
    if(Q.equals(A)){
    randomQ();
    A="";
    }
  }
}
命名week06_A_GAME
單字隨機出現 答對消除
(把射擊器變回白色在ellipse前fill顏色即可)



















(期末作品目前是可憐的單人組)

沒有留言:

張貼留言