2022年10月24日 星期一

鯉魚week08

1.播放音樂
import processing.sound.*;
SoundFile sound1,sound2,sound3;
void setup(){
   size(400,300);
   sound1 = new SoundFile(this,"In Game Music.mp3");
   sound1.play();
}
void draw(){
  
}

 2.切換舞台,切換音樂
import processing.sound.*;
SoundFile sound1,sound2,sound3;
void setup(){
   size(400,300);
   textSize(50);
   fill(255,0,0);
   sound1 = new SoundFile(this,"In Game Music.mp3");
   sound2 = new SoundFile(this,"Cannon Blast.mp3");
   sound1.play();
}
int stage =1;
void draw(){
    background(255);
    if(stage==1){
       text("stage 1",100,100); 
    }else if(stage==2){
       text("stage 2",100,100); 
    }
}
void mousePressed(){
   if(stage==1){
      stage=2;
      sound1.stop();
      sound2.play();
   }else if(stage==2){
      stage=1;
      sound2.stop();
      sound1.play();
   }
}
3.簡化版
import processing.sound.*;
SoundFile sound1,sound2,sound3;
void setup(){
   size(400,300);
}
int stage =1;
void draw(){
    background(255,255,0);
    fill(255,0,0);
    textSize(80);
    if(stage==1){
       text("stage 1",100,100); 
    }else if(stage==2){
       text("stage 2",100,100); 
    }
}
void mousePressed(){
   if(stage==1) stage=2;
   else if(stage==2) stage=1;
}
4.水果可以飛起來
void setup(){
  size(400,300);
}
float fruitX=200 , fruitY=150; //水果位置
float fruitVX=1 , fruitVY=-1; //水果速度
boolean flying=true;
void draw(){
   background(255,255,0);
   
   ellipse(fruitX,fruitY,50,50);
   if(flying){
      fruitX += fruitVX;
      fruitY += fruitVY;
   }
}
void keyPressed(){
    flying=false;
  }
5.水果可以飛起來(重力加速度)
void setup(){
  size(400,300);
}
float fruitX=200 , fruitY=300; //水果位置
float fruitVX=2 , fruitVY=-13; //水果速度
boolean flying=true;
void draw(){
   background(255,255,0);
   
   ellipse(fruitX,fruitY,50,50);
   if(flying){
      fruitX += fruitVX;
      fruitY += fruitVY;
      fruitVY += 0.98/3; //重力加速度
   }
}
void keyPressed(){
    flying=false;
    fruitReset();//重新準備另一發水果
}
void fruitReset(){
       fruitX = random(100,300);
       fruitY = 300;//固定高度
       fruitVX = random(-2,+2);
       fruitVY = -13;
       flying = true; 
  }
6. class 物件
class Fruit{
   float x,y,vx,vy;
   boolean flying;
   PApplet sketch;
   Fruit(PApplet _sketch){
      sketch = _sketch;
      reset();
   }
   void reset(){
      x = sketch.random(100.0,300.0);
      y = 300;
      vx = sketch.random(-2,+2);
      vy = -13;
      flying = true;
   }
   void update(){
      x += vx;
      y += vy;
      vy += 0.98/3;
   }
}
Fruit fruit;
void setup(){
   size(400,300);
   fruit = new Fruit(this);
}
void draw(){
   background(255,255,0);
   ellipse(fruit.x , fruit.y , 50 , 50);
   fruit.update();
}
void keyPressed(){
    fruit.reset();
}

7.水果有字母,三個一起跳

Fruit[] fruits;
void setup(){
   size(400,300);
   fruits = new Fruit[3];
   for(int i=0;i<3;i++){
       fruits[i] = new Fruit(this);
     }
}
void draw(){
   background(255,255,0);
   for(int i=0;i<3;i++){
      fill(255);
      ellipse(fruits[i].x , fruits[i].y , 50 ,50);
      textSize(30);
      textAlign(CENTER,CENTER);
      fill(0);text(fruits[i].c ,fruits[i].x ,fruits[i].y);
      fruits[i].update();
   }
}
void keyPressed(){
   for(int i=0;i<3;i++){
      if(keyCode == fruits[i].c){
         fruits[i].reset(); 
      }
   }
}

另一分頁:

String line = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
class Fruit{
   float x,y,vx,vy;
   boolean flying;
   char c; //水果對應字母
   PApplet sketch;
   Fruit(PApplet _sketch){
      sketch = _sketch;
      reset();
   }
   void reset(){
      x = sketch.random(100.0,300.0);
      y = 300;
      vx = sketch.random(-2,+2);
      vy = -13;
      flying = true;
      int i=int(random(26));
      c = line.charAt(i);
   }
   void update(){
      x += vx;
      y += vy;
      vy += 0.98/3;
   }
}

沒有留言:

張貼留言