2024年11月4日 星期一

Week09 精靈文字、Sound、Ninija

week09_1_createFont_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;
void setup(){
  size(500,500);
  font0=createFont("Times New Roman",50);
  font=createFont("標楷體",50);
  font2=createFont("elffont-rock.otf",50);
}
void draw(){
  background(0);
  textSize(50);
  textFont(font0);
  text("Hello",50,50);
  
  textFont(font);
  text("我愛你",50,150);
  
  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.play(); //播放一次
  sound.loop(); //一直迴圈播放
}

void draw(){
  
}

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();
}
void keyboard(){
  if(key=='1'){
    sound2.stop();
    sound1.play();
  }else{
    sound1.stop();
    sound2.play();
  }
}

week09_5_keyboard_ninija01_background_image_appleX_appleY_appleVX_appleVY_g
#蘋果拋起來#









PImage board; //外面宣告變數
void setup(){
  size(600,400);
  board=loadImage("board.png"); //裡面修改變數
}
float appleX=100,appleY=500,appleVX=3,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){
    appleX=100;appleY=500;appleVX=5;appleVY=-30;
  } //當蘋果太右邊時,重設新的蘋果位置、速度
}

week09_6_keyboard_ninija02_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;
  if(appleX<300) appleVX=random(-8,8);
  else appleVX=random(-8,0);
  appleVY=random(-30,-25);
}
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>550){
    randomApple();
  } //當蘋果太右邊時,重設新的蘋果位置、速度
}

week09_7_keyboard_ninija03_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(-8,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; //照著運動的速度,X往右移
  appleY+=appleVY; //照著運動的速度,Y也會移動
  appleVY+=0.98; //0.98 gravity 重力加速度
  if(appleX>600||appleX<0||appleY>550){
    randomApple();
  } //當蘋果太右邊時,重設新的蘋果位置、速度
}

week09_8_keyboard_ninija04_start_3_2_1_go
#加上前面3、2、1、GO#










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(-8,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;
  if(state==2){
    if(key==appleKey){
      score+=100;
    }else{
      score-=200;
    }
  }
}
int state=0;
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>550){
      randomApple();
    }
  } //當蘋果太右邊時,重設新的蘋果位置、速度
}

week09_9_keyboard_ninija05_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 Music.mp3");
  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倒數
    sound1.stop();
    sound2.play(); // 3
  } else 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秒+GO1秒
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; //時間用完, 就跳入新的畫面
      sound2.stop();
      sound3.loop();
    }
  } 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) {
      randomApple(); // 當蘋果出界時, 重設新的蘋果的位置、速度
    }
  }
}


沒有留言:

張貼留言