2022年10月24日 星期一

Da note week8

 1-1 先安裝sound 然後去moodle下載音樂檔並放入(複習上週)

code:

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, "Intro Song_Final.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();

  }

}



1-2 新增stage變數用滑鼠點擊來控制播放兩個不同的音樂

code:

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, "Intro Song_Final.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();

  }

}



1-3 精簡剛剛的程式碼

code:

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;

  }





2-1 新寫一個水果忍者的遊戲,先寫水果在空中移動
code:

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;
 }
2-2 新寫一個Reset函式來讓水果重新發射!


code:
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;
 }
 




3-1 更新另一種寫法

code:

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();

 }

 


3-2完整程式碼
CODE:
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;
  }
}
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();
}
}
}





沒有留言:

張貼留言