2024年11月25日 星期一

week12 access很煩


//week12_01_libraries_sound

// 官網-Documentaion 文件-Libraries函式庫(圖書館)-Sound聲音部分

//https://processing.org/reference/libraries/sound/index.html

//我們教過play() stop() pause()

import processing.sound.*;

SoundFile sound1, sound2;

//import processing.sound.*;

//SoundFile sound1, sound2; //兩段音樂

int playing = 1;

void setup() {

  size(640, 360);

  background(255);

  sound1 =new SoundFile(this, "Intro Song_Final.mp3");

  sound2 =new SoundFile(this, "In Game Music.mp3");

}

void draw() {

  if (sound1.isPlaying())//音樂1有沒有在播放

  {

    playing=1;

  } else if (sound2.isPlaying()) {

    playing=2;

  } else {//沒有任何音樂再撥放

    if (playing==1) sound2.play();//換另一首

    else sound1.play();

  }

}



// week12_02_bezier_sample

//按右鍵,找bezier()函式的網站文件

size(500, 500);

noFill();

stroke(255, 102, 0);

line(340, 80, 40, 40);

line(360, 360, 60, 320);

stroke(0, 0, 0);

bezier(340, 80, 40,40,360,360,60,320);




//week12_03_bezier_1_3_3_1_equation_mouseDragged_change_t
void setup() {
  size(500, 500);
}
PVector p0 = new PVector(340, 80);
PVector p1 = new PVector(40, 40);
PVector p2 = new PVector(360, 360);
PVector p3 = new PVector(60, 320);
float t =0.0;
void draw() {
  background(255);
  noFill();
  stroke(255, 102, 0);
  line(340, 80, 40, 40);
  line(360, 360, 60, 320);
  stroke(0, 0, 0);
  bezier(340, 80, 40, 40, 360, 360, 60, 320);
  float x =p0.x*(1-t)*(1-t)*(1-t) +3*p1.x*t*(1-t)*(1-t)+3*p2.x*t*t*(1-t)+ p3.x*t*t*t;
  float y =p0.y*(1-t)*(1-t)*(1-t)+ 3*p1.y*t*(1-t)*(1-t)+3*p2.y*t*t*(1-t)+p3.y*t*t*t;
  ellipse(x, y, 10, 10);
}
void mouseDragged()
{
  t+= 0.01*(mouseX-pmouseX);
}





// week12_04_bezier_for_t_t0_0_many_t
void setup() {
  size(400, 400);
}
PVector p0 = new PVector(120, 80);
PVector p1 = new PVector(320, 20);
PVector p2 = new PVector(320, 320);
PVector p3 = new PVector(120, 300);
float t0 =0.0;
void draw() {
  background(255);
  noFill();
  noFill();
  stroke(255, 102, 0);
  line(120, 80, 320, 20);
  line(320, 300, 120, 300);
  stroke(0, 0, 0);
  bezier(120, 80, 320, 20, 320, 300, 120, 300);
  for (float t = t0; t>=0; t-=0.025) {
    float x =p0.x*(1-t)*(1-t)*(1-t) +3*p1.x*t*(1-t)*(1-t)+3*p2.x*t*t*(1-t)+ p3.x*t*t*t;
    float y =p0.y*(1-t)*(1-t)*(1-t)+ 3*p1.y*t*(1-t)*(1-t)+3*p2.y*t*t*(1-t)+p3.y*t*t*t;
    ellipse(x, y, 10, 10);
  }
}
void mouseDragged()
{
  t0+= 0.01*(mouseX-pmouseX);
}


// week12_05_bezier_ArrayList_class_ball_draw_ArrayList_add
void setup() {
  size(400, 400);
}
PVector p0 = new PVector(120, 80);
PVector p1 = new PVector(320, 20);
PVector p2 = new PVector(320, 300);
PVector p3 = new PVector(120, 300);
float t0 =0.0;
ArrayList<Ball>balls = new ArrayList<Ball>();//新加的
void draw() {
  background(255);
  noFill();
  stroke(255, 102, 0);
  line(120, 80, 320, 20);
  line(320, 300, 120, 300);
  stroke(0, 0, 0);
  bezier(120, 80, 320, 20, 320, 300, 120, 300);
  for (Ball ball : balls) {
    ball.draw();//新加的
  }//新加的
  if (frameCount%20==0)balls.add(new Ball(p0, p1, p2, p3));
}
void mouseDragged()
{
  t0+= 0.01*(mouseX-pmouseX);
}
class Ball {
  PVector p0, p1, p2, p3;
  float t;
  Ball(PVector _p0, PVector _p1, PVector _p2, PVector _p3) {
    p0 = _p0;
    p1 = _p1;
    p2 = _p2;
    p3 = _p3;
  }
  void draw() {
    float x =p0.x*(1-t)*(1-t)*(1-t) +3*p1.x*t*(1-t)*(1-t)+3*p2.x*t*t*(1-t)+ p3.x*t*t*t;
    float y =p0.y*(1-t)*(1-t)*(1-t)+ 3*p1.y*t*(1-t)*(1-t)+3*p2.y*t*t*(1-t)+p3.y*t*t*t;
    ellipse(x, y, 10, 10);
    t+= 0.001;
  }
}





// week12_06_bezier_ArrayList_class_balls_size_get_remove
void setup() {
  size(400, 400);
}
PVector p0 = new PVector(120, 80);
PVector p1 = new PVector(320, 20);
PVector p2 = new PVector(320, 300);
PVector p3 = new PVector(120, 300);
float t0 =0.0;
ArrayList<Ball>balls = new ArrayList<Ball>();//新加的
void draw() {
  background(255);
  noFill();
  stroke(255, 102, 0);
  line(120, 80, 320, 20);
  line(320, 300, 120, 300);
  stroke(0, 0, 0);
  bezier(120, 80, 320, 20, 320, 300, 120, 300);
  for (Ball ball : balls) {
    ball.draw();//新加的
  }//新加的
  if (frameCount%20==0) {
    balls.add(new Ball(p0, p1, p2, p3));
    println(balls.size());
  }
  if (balls.size()>0 && balls.get(0).t>1.0)balls.remove(0);
}
void mouseDragged()
{
  t0+= 0.01*(mouseX-pmouseX);
}
class Ball {
  PVector p0, p1, p2, p3;
  float t;
  Ball(PVector _p0, PVector _p1, PVector _p2, PVector _p3) {
    p0 = _p0;
    p1 = _p1;
    p2 = _p2;
    p3 = _p3;
  }
  void draw() {
    float x =p0.x*(1-t)*(1-t)*(1-t) +3*p1.x*t*(1-t)*(1-t)+3*p2.x*t*t*(1-t)+ p3.x*t*t*t;
    float y =p0.y*(1-t)*(1-t)*(1-t)+ 3*p1.y*t*(1-t)*(1-t)+3*p2.y*t*t*(1-t)+p3.y*t*t*t;
    ellipse(x, y, 10, 10);
    t+= 0.001;
  }
}






沒有留言:

張貼留言