2024年11月4日 星期一

Dubi week09

 //week09_1_creatcFont_loadFont_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);//先安裝字形

text("ㄇㄉㄈㄎ",50,250);















//week09_2_PFont_outside_void_setup_createFont_void_draw_text
PFont font0,font,font2;//3種字型
void setup(){
  size(500,500);
  font0 = createFont("Arial", 50);
  font = createFont("標楷體", 50);
  font2 = createFont("elffont-rock.otf", 50);//字型檔要拉進來

}
void draw(){
  background(0);
  textSize(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);//先安裝字形
  text("ㄇㄉㄈㄎ",50,250);
}
















//week09_3_processing_sound
import processing.sound.*;
SoundFile sound;

void setup(){
  size(500,500);
  sound = new SoundFile(this, "In Game Music.mp3");
  sound.loop();
}




//week09_4_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();
  }
}


//week09_5_keyboard_ninja01_background_image_appleX_appleY_appleVX_appleVY
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;
  appleY += appleVY;
  appleVY += 0.98;
  if(appleX > 600){
    appleX = 100 ;appleY = 500; appleVX = 5; appleVY = -30;
  }
}
















//week09_06_keyboard_ninja03_void_randomApple

PImage board;
void setup() {
  size(600, 400);
  board = loadImage("board.png");
}
float appleX = 100, appleY=500, appleVX=3, 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;
  appleVY +=0.98;
  if (appleX>600 || appleX<0 || appleY>550) {
    //appleX = 100;
    //appleY = 500;
    //appleVX = 5;
    //appleVY=-30;
    randomApple();
  }//當蘋果太右邊時,重新設新的蘋果的位置、速度
}















//week09_7_keyboard_ninj04_void_keyPressed_appleKey
PImage board;
void setup() {
  size(600, 400);
  board = loadImage("board.png");
  randomApple();
}
float appleX = 100, appleY=500, appleVX=3, 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(key==appleKey){
    score += 100;
  }else{
    score -= 200;
  }
}

void draw() {
  background(board);
  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;
  appleY +=appleVY;
  appleVY +=0.98;
  if (appleX>600 || appleX<0 || appleY>550) {
    randomApple();
  }
}
















//week09_08_keyboard_ninja05_start_3_2_1_go
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 -=20; //答錯扣很多分
    }
  }
}
int state = 0;// 0:wait , 1:3,2,1,GO, 2:Game
int countdown = 60*4; //倒數計時3秒
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>550) {
      //appleX = 100;
      //appleY = 500;
      //appleVX = 5;
      //appleVY=-30;
      randomApple();
    }
  }
}

沒有留言:

張貼留言