2023年10月26日 星期四

bb-week07

 void setup(){

 size(400,400);
 background(255);
}
void draw(){
  if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY); 
}
void mouseReleased(){
 background(255); 
}
劃線後放開左鍵會不見
void setup(){
 size(400,400);
 background(255);
}
float ghostX=400,ghostY=20;//鬼的座標
void draw(){
  ellipse(200,200,15,15);//主角在哪
  if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY); 
  ellipse(ghostX,ghostY,15,15);
  float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy);
  ghostX += dx/len/3;
  ghostY += dy/len/3;
}
void mouseReleased(){
 background(255); 
}

ArrayList<PVector> pt = new ArrayList<PVector>();
void setup(){
 size(400,400);
 background(255);
}
float ghostX=400,ghostY=20;
void mouseDragged(){
 pt.add(new PVector(mouseX , mouseY)); 
}
void draw(){
  background(255);
  ellipse(200,200,15,15);
  for(int i=0;i<pt.size();i++){
   PVector p = pt.get(i);
   ellipse(p.x,p.y,3,3);
  }
  ellipse(ghostX,ghostY,15,15);
  float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy);
  ghostX += dx/len/3;
  ghostY += dy/len/3;
}
void mouseReleased(){
 background(255); 
}


void mouseReleased(){
 for(int i=pt.size()-1;i>=0;i--){
   pt.remove(i);
   }
}
放開滑鼠點點會不見


把點點變成線

void draw(){
  background(255);
  ellipse(200,200,15,15);
  ellipse(ghostX,ghostY,15,15);
  strokeWeight(4);
  float dpx=0,dpy=0;//要看p.x p2.x的差距 p.y p2.y的差距
  for(int i=0;i<pt.size()-1;i++){
   PVector p = pt.get(i),p2 = pt.get(i+1); 
   dpx += abs(p2.x - p.x);//累計x的移動量
   dpy += abs(p2.y - p.y);//累計y的移動量
  }
  if(dpx>100 && dpy<40) stroke(255,0,0);//紅色的橫線
  else stroke(0);//不是就黑色線
  for(int i=0;i<pt.size()-1;i++){
   PVector p = pt.get(i),p2 = pt.get(i+1); 
   line(p.x,p.y,p2.x,p2.y);
  }
  float dx = 200-ghostX, dy = 200-ghostY, len = sqrt(dx*dx+dy*dy);
  ghostX += dx/len/3;
  ghostY += dy/len/3;
}






  int rightdown = 0;//往右下
   if(p2.x - p.x > 0 && p2.y - p.y > 0) rightdown++;
  else if(rightdown>30) stroke(0,255,0);//綠色ㄉ橫線








沒有留言:

張貼留言