2024年11月4日 星期一

week09考試週

 1.week09_1_createFont_laodFont_textFont

 // week09_1_createFont_laodFont_textFont
 size(500, 500); //大視窗
 background(0); //黑色背景
 textSize(50);
 text("Hello",50, 50);

 PFont font = createFont("標楷體", 50);
 textFont(font);
 text("中文看到了", 50, 150);
 
 PFont font2 = createFont("elffont-rock.otf", 50);
 textFont(font2); //記得把字形,點兩下,安裝,才能順利 createFont()
 text("ㄑㄋㄇㄉ", 50, 250);
2.week09_02_PFont_outside_void_setup_createFont_void_draw_text
 // week09_02_PFont_outside_void_setup_createFont_void_draw_text
PFont font0, font, font2; //3種字形: 英文 中文 注音文(外面宣告,兩個函式都看的到)
void setup(){
   size(500, 500); //大視窗
   font0 = createFont("Algerian", 50); // Arial 或 Times New Roman
   font = createFont("標楷體", 50);
   font2 = createFont("elffont-rock.otf", 50); //字形檔,也要拉進來
   // println(PFont.list()); //印出現在能用的系統的所有字形
}
void draw(){
   background(0); //黑色背景
   textSize(50);
   //PFont font0 = creatFont("Ariel"50); 不能寫在裡面,見幾萬次字形電腦會亂掉
   textFont(font0);
   text("Hello",50, 50);
  
   //PFont font = createFont("標楷體", 50); 不能寫在裡面
   textFont(font);
   text("中文看到了", 50, 150);
   
   //PFont font2 = createFont("elffont-rock.otf", 50); 不能寫在裡面
   textFont(font2); //記得把字形,點兩下,安裝,才能順利 createFont()
   text("ㄑㄋㄇㄉ", 50, 250);
}

3.week09_03_processing_sound

//week09_03_processing_sound 聲音相關 使用音樂相關的Library函式庫
// Sketch-Library-Manager Libraries 找 sound 可找到 Sound 函式庫 (Processing 基金會做的),安裝
// File-Examples, 選Libraries核心函式庫 剛剛裝的Sound 的 Soundfile的SimplePlayback或Jumble 或 JumbleSound
//我們自己寫[最精簡的版本]
import processing.sound.*;

SoundFile soundfile;

void setup(){
  size(500, 500);
  sound = new SoundFile(this, "In Game Music.mp3");
  //sound.play(); //播放1次
  sound.loop();
}
void draw(){
  
}


4.week09_04_multiple_sound_files_keyPressed_stop_play
// week09_04_multiple_sound_files_keyPressed_stop_play
import processing.sound.*;
SoundFile sound1, sound2, hit;
void setup(){
  size(500, 500);
  sound1 = new SoundFile(this, "In Game Music.mp3");
  sound2 = new SoundFile(this, "Intro Song_Final.mp3");
  hit = new SoundFile(this, "sword slash.mp3");
  sound2.play();
}
void draw(){
  background(255);
}
void mousePressed(){
  hit.play(); //mouse按下時,揮劍的聲音
}
void keyPressed(){
  if(key=='1'){
    sound2.stop();
    sound1.play();
  }else{
    sound1.stop();
    sound2.play();
  }
}

5.week09_05_keyboard_ninja01_background_image_appleX_appleY_appleVX_appleVY_g
// week09_05_keyboard_ninja01_background_image_appleX_appleY_appleVX_appleVY_g
PImage board; //外面宣告變數
void setup(){
  size(600, 400);
  board = loadImage("board.png"); //裡面修改變數
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY = -30;
void draw(){
  background(board); //裡面使用變數
  fill(255, 0, 0);
  ellipse(appleX, appleY, 80, 80);
  appleX += appleVX; //照著運動的速度, X往右移
  appleY += appleVY; //照著運動的速度, Y也會移動
  appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到[加速度]影響)
  if(appleX > 600){ //裡面應該要寫成5行,只是截圖不太夠,就黏成一行,請分成4行
    appleX = 100; appleY = 500; appleVX = 5; appleVY = -30; //分號分開的4行
  } //當蘋果太右邊時,重設新的蘋果的位置,速度
}

6.week09_06_keyboard_ninja02_randomApple
// week09_06_keyboard_ninja02_randomApple
PImage board; //外面宣告變數
void setup(){
  size(600, 400);
  board = loadImage("board.png"); //裡面修改變數
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY = -30;
void randomApple(){
  appleX = random(100, 500);
  appleY = 500;
  appleVX = random(-8, 8);
  appleVY = random(-30, -20);
}
void draw(){
  background(board); //裡面使用變數
  fill(255, 0, 0);
  ellipse(appleX, appleY, 80, 80);
  appleX += appleVX; //照著運動的速度, X往右移
  appleY += appleVY; //照著運動的速度, Y也會移動
  appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到[加速度]影響)
  if(appleX > 600 || appleX < 0 || appleY > 500){ 
    randomApple(); //當蘋果出界時, 重新設定蘋果的位置,速度
  } 
}
7.week09_07_keyboard_ninja04_void_keyPressed_appleKey
// week09_07_keyboard_ninja04_void_keyPressed_appleKey
PImage board; //外面宣告變數
void setup(){
  size(600, 400);
  board = loadImage("board.png"); //裡面修改變數
  randomApple();
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY = -30;
char appleKey; //蘋果上面,要秀的字母
void randomApple(){
  appleX = random(100, 500);
  appleY = 500;
  if(appleX<300) appleVX = random(0, 8);
  else appleVX = random(-8, 0);
  appleVY = random(-30, -25);
  appleKey = (char) ('a' + int(random(26)));
  
}
void draw(){
  background(board); //裡面使用變數
  fill(255, 0, 0);
  ellipse(appleX, appleY, 80, 80);
  fill(255,255,0);
  textSize(50);
  textAlign(CENTER, CENTER);
  text(appleKey, appleX, appleY);
  appleX += appleVX; //照著運動的速度, X往右移
  appleY += appleVY; //照著運動的速度, Y也會移動
  appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到[加速度]影響)
  if(appleX > 600 || appleX < 0 || appleY > 500){ 
    randomApple(); //當蘋果出界時, 重新設定蘋果的位置,速度
  } 
}

8.week09_08_keyboard_ninja05_start_3_2_1_go
// week09_08_keyboard_ninja05_start_3_2_1_go
PImage board; //外面宣告變數
void setup(){
  size(600, 400);
  board = loadImage("board.png"); //裡面修改變數
  randomApple();
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY = -30;
char appleKey; //蘋果上面,要秀的字母
void randomApple(){
  appleX = random(100, 500);
  appleY = 500;
  if(appleX<300) appleVX = random(0, 8);
  else appleVX = random(-8, 0);
  appleVY = random(-30, -25);
  appleKey = (char) ('a' + int(random(26)));
  
}
int score = 0;
void keyPressed(){
  if(state==0) state = 1; //按任意鍵,會開始3,2,1倒數
  if(state==2){
    if(key==appleKey){
      score += 100; //答對加分
    }else{
      score -= 200; //答錯扣分
    }
  }
}
int state = 0; //0: wait, 1: 3, 2, 1, GO, 2: Game
int countdown = 60*4;
void draw(){
  background(board); //裡面使用變數
  textSize(50);
  textAlign(CENTER, CENTER);
  fill(255, 255, 0);
  if (state==0) text("Press Any Key to Start", 300, 200);
  else if(state==1){
    textSize(100);
    countdown--;
    if(countdown>60*3) text("3", 300, 200);
    else if(countdown>60*2) text("2", 300, 200);
    else if(countdown>60*1) text("1", 300, 200);
    else if(countdown>0) text("GO", 300, 200);
    else state = 2; //時間用完,就跳入新的畫面
  }else{
    text("Score:"+score, 400, 50);
    fill(255, 0, 0);
    ellipse(appleX, appleY, 80, 80); //紅色的蘋果
    fill(255,255,0);
    textSize(50);
    textAlign(CENTER, CENTER);
    text(appleKey, appleX, appleY);
    appleX += appleVX; //照著運動的速度, X往右移
    appleY += appleVY; //照著運動的速度, Y也會移動
    appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到[加速度]影響)
    if(appleX > 600 || appleX < 0 || appleY > 500){ 
      randomApple(); //當蘋果出界時, 重新設定蘋果的位置,速度
    }
  } 
}

9.week09_09_keyboard_ninja06_add_music
// week09_09_keyboard_ninja06_add_music
import processing.sound.*;
SoundFile sound1, sound2, sound3;
PImage board; //外面宣告變數
void setup(){
  size(600, 400);
  board = loadImage("board.png"); //裡面修改變數
  randomApple();
  sound1 = new SoundFile(this, "Intro Song_Final.mp3");
  sound2 = new SoundFile(this, "Gong.mp3");
  sound3 = new SoundFile(this, "In Game.mp3");
  background(board); 
  sound1.play();
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY = -30;
char appleKey; //蘋果上面,要秀的字母
void randomApple(){
  appleX = random(100, 500);
  appleY = 500;
  if(appleX<300) appleVX = random(0, 8);
  else appleVX = random(-8, 0);
  appleVY = random(-30, -25);
  appleKey = (char) ('a' + int(random(26)));
  
}
int score = 0;
void keyPressed(){
  if(state==0) state = 1; //按任意鍵,會開始3,2,1倒數
  if(state==2){
    if(key==appleKey){
      score += 100; //答對加分
    }else{
      score -= 200; //答錯扣分
    }
  }
}
int state = 0; //0: wait, 1: 3, 2, 1, GO, 2: Game
int countdown = 60*4;
void draw(){
  background(board); //裡面使用變數
  textSize(50);
  textAlign(CENTER, CENTER);
  fill(255, 255, 0);
  if (state==0) text("Press Any Key to Start", 300, 200);
  else if(state==1){
    textSize(100);
    countdown--;
    if(countdown%60==0){
      sound2.stop(); //同一個音樂關掉
      sound2.play(); //再撥一次
    }
    if(countdown>60*3) text("3", 300, 200);
    else if(countdown>60*2) text("2", 300, 200);
    else if(countdown>60*1) text("1", 300, 200);
    else if(countdown>0) text("GO", 300, 200);
    else state = 2; //時間用完,就跳入新的畫面
  }else{
    text("Score:"+score, 400, 50);
    fill(255, 0, 0);
    ellipse(appleX, appleY, 80, 80); //紅色的蘋果
    fill(255,255,0);
    textSize(50);
    textAlign(CENTER, CENTER);
    text(appleKey, appleX, appleY);
    appleX += appleVX; //照著運動的速度, X往右移
    appleY += appleVY; //照著運動的速度, Y也會移動
    appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到[加速度]影響)
    if(appleX > 600 || appleX < 0 || appleY > 500){ 
      randomApple(); //當蘋果出界時, 重新設定蘋果的位置,速度
    }
  } 
}
























































































































沒有留言:

張貼留言