2020年5月8日 星期五

week11



==============================================================

用Processing了解泡泡排序法


==============================================================

讓小精靈張嘴





void setup(){
   size(400,400);
}
int X=100,Y=100,angle=45,diff=1;
void draw(){
  background(0);
  arc(X,Y,80,80,radians(angle),radians(360-angle),PIE);
  angle+=diff;
  if(angle>60) diff=-1;
  if(angle<0)  diff=+1;
}
==============================================================
會動的小精靈





void setup(){
   size(400,400);
}
int X=100,Y=100,dx=1,dy=0,angle=45,diff=1;
void draw(){
  background(0);
  arc(X,Y,80,80,radians(angle),radians(360-angle),PIE);
  angle+=diff;
  if(angle>60) diff=-2;
  if(angle<0)  diff=+2;
  X+=dx; Y+=dy;
}
void keyPressed(){
  if(keyCode==RIGHT){ dx=+1; dy=0; }
  if(keyCode==LEFT){ dx=-1; dy=0; }
  if(keyCode==UP){ dx=0; dy=-1; }
  if(keyCode==DOWN){ dx=0; dy=+1; }
}
==============================================================

讓小精靈移動方向正確

void setup(){
   size(400,400);
}
int X=100,Y=100,dx=1,dy=0,angle=45,diff=2,dir=0;
void draw(){
  background(0);
  arc(X,Y,80,80,radians(dir+angle),radians(dir+360-angle),PIE);
  angle+=diff;
  if(angle>60) diff=-2;
  if(angle<0)  diff=+2;
  X+=dx; Y+=dy;
}
void keyPressed(){
  if(keyCode==RIGHT){ dx=+1; dy=0; dir=0;}
  if(keyCode==LEFT){ dx=-1; dy=0; dir=180;}
  if(keyCode==UP){ dx=0; dy=-1; dir=270;}
  if(keyCode==DOWN){ dx=0; dy=+1; dir=90;}
}


==============================================================


int [][]bean={
   {1,1,1,1,1, 1,1,1,1,1},
   {1,1,1,1,1, 1,1,1,1,1},
   {1,1,1,1,1, 1,1,1,1,1},
   {1,1,1,1,1, 1,1,1,1,1},
   {1,1,1,1,1, 1,1,1,1,1},
 
   {1,1,1,1,1, 1,1,1,1,1},
   {1,1,1,1,1, 1,1,1,1,1},
   {1,1,1,1,1, 1,1,1,1,1},
   {1,1,1,1,1, 1,1,1,1,1},
   {1,1,1,1,1, 1,1,1,1,1} };
void setup(){
   size(400,400);
}
int X=100,Y=100,dx=1,dy=0,angle=45,diff=2,dir=0;
void draw(){
  background(0);
  fill(255);
  for(int y=0;y<10;y++){
     for(int x=0;x<10;x++){
        if(bean[y][x]==0) continue;
        ellipse(20+x*40,20+y*40,10,10);
        if(dist(x,y,20+x*40,20+y*40)<20) bean[y][x]=0;
     }
  }
  fill(#FFCF0D); arc(X,Y,40,40,radians(dir+angle),radians(dir+360-angle),PIE);
  angle+=diff;
  if(angle>60) diff=-2;
  if(angle<0)  diff=+2;
  X+=dx; Y+=dy;
}
void keyPressed(){
  if(keyCode==RIGHT){ dx=+1; dy=0; dir=0;}
  if(keyCode==LEFT){ dx=-1; dy=0; dir=180;}
  if(keyCode==UP){ dx=0; dy=-1; dir=270;}
  if(keyCode==DOWN){ dx=0; dy=+1; dir=90;}
}

沒有留言:

張貼留言