顯示具有 08160182_林裕宸 標籤的文章。 顯示所有文章
顯示具有 08160182_林裕宸 標籤的文章。 顯示所有文章

2021年12月20日 星期一

Week15 上課筆記(林裕宸)

 int chkID=0;

float []chkX=new float[10];

float []chkY=new float[10];

float []chkVX=new float[10];

float []chkVY=new float[10];

boolean[]run=new boolean[10];

void setup(){

  size(400,300);

  for(int i=0;i<10;i++){

    chkX[i]=random(10,150-10);

    chkY[i]=random(10,300-10);

    chkVX[i]=random(-0.3,0.3);

    chkVY[i]=random(-0.3,0.3);

  }

}

void draw(){

  background(122,171,185);

  fill(102,166.28);

  rect(0,0,150,300);

  for(int i=0;i<10;i++){

    if(chkID==i)strokeWeight(3);

    else strokeWeight(1);

    fill(255);ellipse(chkX[i],chkY[i],20,50);

    chkX[i]+=chkVX[i];

    chkY[i]+=chkVY[i];

    if(chkY[i]<0)chkVY[i]= abs(chkVY[i]);

    if(chkY[i]>300)chkVY[i]= -abs(chkVY[i]);

    if(chkX[i]<0)chkVX[i]= abs(chkVX[i]);

    if(run[i]==false && chkX[i]>150)chkVX[i]= -abs(chkVX[i] );

  }

}

void keyPressed(){

  int i=chkID;

  if(keyCode==RIGHT){chkVX[i]=1; chkVY[i]=0;}

  else if(keyCode==LEFT){chkVX[i]=-1;chkVY[i]=0;}

  else if(keyCode==UP){chkVX[i]=0;chkVY[i]=-1;}

  else if(keyCode==DOWN){chkVX[i]=0;chkVY[i]=1;}

  run[i]=true;

 }

 void mousePressed(){

   for(int i=0;i<10;i++){

     if(dist(mouseX,mouseY,chkX[i],chkY[i])<10)chkID=i;

   }

 }

2021年11月22日 星期一

Week07 上課筆記(林裕宸)

 讓球球往下掉



float x=250,y=0,vx=0,vy=3;
void setup(){
    size(500,600);
}
void draw(){
  background(255);  
  ellipse(x,y,50,50);
  y=y+vy;
}
讓球球一快一慢

float x=250,y=0,vx=0,vy=3;
float x2=150,y2=50,vx2=0,vy2=2;
void setup(){
    size(500,600);
}
void draw(){
  background(255);  
  ellipse(x,y,50,50);
  ellipse(x2,y2,50,50);
  y=y+vy;
  y2=y2+vy2;
}

好多球球不同速度

float []x={250,150,350,300};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
    size(500,600);
}
void draw(){
  background(255);  
  for(int i=0;i<4;i++){  
    ellipse(x[i],y[i],50,50);
    y[i]=y[i]+vy[i];
  }
}
讓他上下撞撞撞
float []x={250,150,350,300};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
    size(500,600);
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){
    ellipse(x[i],y[i],50,50);
    y[i]=y[i]+vy[i];
    if(y[i]>600)vy[i]=-vy[i];
    if(y[i]<0)vy[i]=-vy[i];
  }
}
讓他抓住球球
float []x={250,150,350,300};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
    size(500,600);
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){
    fill(255,255,0);ellipse(x[i],y[i],50,50);
    if(dist(mouseX,mouseY,x[i],y[i])<=50){
      continue;
    }
    y[i]=y[i]+vy[i];
    if(y[i]>600)vy[i]=-vy[i];
    if(y[i]<0)vy[i]=-vy[i];
    fill(255,0,0);ellipse(mouseX,mouseY,50,50);

  }
}

把球球殺掉
float []x={250,150,350,300};
float []y={0,50,80,100};
float []vy={3,2,2.5,4};
boolean[] dead={false,false,false,false};
void setup(){
    size(500,600);
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){
    if(dist(mouseX,mouseY,x[i],y[i])<=50){
      dead[i]=true;
    }
    if(dead[i]==true)continue;
    fill(255,255,0);ellipse(x[i],y[i],50,50);
    y[i]=y[i]+vy[i];
    if(y[i]>600)vy[i]=-vy[i];
    if(y[i]<0)vy[i]=-vy[i];
    fill(255,0,0);ellipse(mouseX,mouseY,50,50);

  }
}
按螢幕會變紅


boolean down;
void setup(){
    size(500,300);
}
void draw(){
    if(mousePressed)down=true;
    else down=false;
    print(down);
    if(down)background(255,0,0);
    else background(0,255,0);
}
好多球
float[] x;
float[] y;
float[] vy;
boolean[] dead;
int N=20;
void setup(){
  size(500,600);
  x=new float[N]; 
  y=new float[N];
  vy=new float[N];
  dead=new boolean[N];
  for(int i=0;i<N;i++){
    x[i]=random(500); 
    y[i]=100;
    vy[i]=random(2,4);
    dead[i]=false;
    }
}
void draw(){
  background(255);
  for(int i=0;i<N;i++){
    if(dist(mouseX,mouseY,x[i],y[i])<=50){
      dead[i]=true; 
    }
    if(dead[i]==true) continue; 
    fill(255,255,0);ellipse(x[i],y[i],50,50);
    y[i]=y[i]+vy[i]; 
    if(y[i]>600) vy[i] = -vy[i];
    if(y[i]<0) vy[i] = -vy[i]; 
  }
  fill(255,0,0);ellipse(mouseX,mouseY,50,50);
}






2021年11月15日 星期一

Week06 上課筆記(林裕宸)

互動技術概論-時鐘-20211115

寫字字


void setup(){
    size(600,600);///視窗大小
    fill(255,0,0);///字顏色
    textSize(80);///字大小
}
void draw(){
    text("Hello",50,100);///寫的字
}

跑秒

void setup(){
    size(600,600);
    fill(255,0,0);
    textSize(80);
}
void draw(){
    background(255);
    text("Time:"+frameCount,50,100);
}

完成碼表


void setup(){
    size(600,600);
    fill(255,0,0);
    textSize(80);
}
void draw(){
    background(255);
    text("Time:"+frameCount/60,50,100);///
    text("millis()"+millis()/1000,50,200);///毫秒
}

時鐘出來了

void setup(){
    size(600,600);
    fill(255,0,0);
    textSize(80);
}
void draw(){
    background(255);
    text(hour()+":"+minute()+":"+second(),50,100);
    text("millis()"+millis()/1000,50,200);
}

寫中文
PFont myFont;
void setup(){
    size(500,500);
    myFont = createFont("標楷體",100);
    textFont(myFont);
    text("中文",100,100);
}
PFont font1,font2;
void setup(){
  size(500,500);
  font1=createFont("標楷體",100);
  textFont(font1);
  font2=createFont("微軟正黑體 Bold",100);
}
void draw(){
  background(0);
  text("中文",100,100);
  if(mousePressed) textFont(font2);
  else textFont(font1);
}
顯示現在的時間
void setup(){
   size(600,600);
   fill(255,0,0);
   textSize(80);
}
void draw(){
    background(255);
    String  hh=nf(hour(),2);
    String  mm=nf(minute(),2);
    String  ss=nf(second(),2);
    text(hh+":"+mm+":"+ss,50,100);
}
計算剩下的時間
void setup(){
  size(500,500);
  fill(255);//填充顏色
  textSize(80);//文字大小
}
void draw(){
  background(#075BB2);
  String hh=nf(hour(),2);
  String mm=nf(minute(),2);
  String ss=nf(second(),2);
  text(hh+":"+mm+":"+ss,50,100);
  text("15:40:00",50,200);
  
  int now=hour()*60*60+minute()*60+second();
  int next=15*60*60+40*60+0;
  int remain=next-now;
  text(remain,50,300);
}






2021年10月4日 星期一

Week02 上課筆記(林裕宸)

按下滑鼠可變成(255,0,0)的顏色

 void setup(){

  size(500,500);

}

void draw(){

  if(mousePressed) background(255,0,0);//按了滑鼠變紅色

  else background(0,255,0);//沒按就綠色

}


pmouse的應用

原理:原滑鼠的座標連線到最後滑鼠的位置

void setup(){

  size(500,500);

}

void draw(){

  if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);

}




小矩形的應用 他是按紐
rect(x軸位置,y軸位置,長度往右延伸,長度往下延伸)


void setup(){
  size(500,500);
  fill(255,0,0);rect(0,0,100,100);
  fill(0,255,0);rect(0,100,100,100);
}
void draw(){
  if(mousePressed){
    if(mouseX<100){
      if(mouseY<100) stroke(255,0,0);
      else if(mouseY<200) stroke(0,255,0);
    }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}

在矩形裡畫出兩個小圓 示意筆粗 ellipse(x,y,上下直徑,左右直徑)
點按後切換筆粗
strokeWeight(筆粗數值)
void setup(){
  size(500,500);
  rect(0,0,100,100);ellipse(50,50,8,8);
  rect(0,100,100,100);ellipse(50,150,4,4);
}
void draw(){
  if(mousePressed){
    if(mouseX<100){
      if(mouseY<100) strokeWeight(8);
      else if(mouseY<200) strokeWeight(4);
    }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}

調色盤~~
void setup(){
  size(500,500);
  fill(#F70000);rect(0,50,50,50);
  fill(#F79500);rect(0,100,50,50);
  fill(#F7F000);rect(0,150,50,50);
  fill(#20F700);rect(0,200,50,50);
  fill(#00E5F7);rect(0,250,50,50);
  fill(#0022F7);rect(0,300,50,50);
  fill(#DA00F7);rect(0,350,50,50);
  fill(#F70091);rect(0,400,50,50);
}
void draw(){
  if(mousePressed){
    if(mouseX<50){
      if(mouseY>1*50 && mouseY<1*50+50)stroke(#F70000);
      if(mouseY>2*50 && mouseY<2*50+50)stroke(#F79500);
      if(mouseY>3*50 && mouseY<3*50+50)stroke(#F7F000);
      if(mouseY>4*50 && mouseY<4*50+50)stroke(#00E5F7);
      if(mouseY>5*50 && mouseY<5*50+50)stroke(#0022F7);
      if(mouseY>6*50 && mouseY<6*50+50)stroke(#DA00F7);
      if(mouseY>7*50 && mouseY<7*50+50)stroke(#DA00F7);
      if(mouseY>8*50 && mouseY<8*50+50)stroke(#F70091);
    }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}


2021年9月27日 星期一

Week01 上課筆記(林裕宸)

下載Processing並做簡單測試
線條畫出企鵝
size(600,600);
background(#30A4D8);
stroke(204,102,0);
strokeWeight(5);
rect(100,100,400,400);
ellipse(200,300,30,30);
ellipse(400,300,30,30);
ellipse(300,400,200,100);
line(200,400,400,400);
把嘴巴塗滿
size(600,600);
background(#30A4D8);

fill(255);
noStroke();
rect(100,100,400,400);

stroke(128);
strokeWeight(5);
ellipse(200,300,30,30);
ellipse(400,300,30,30);

noStroke();
fill(#CC6600);
ellipse(300,400,200,100);

stroke(255);
line(200,400,400,400);