2020年5月8日 星期五

wk11


先複習實習課的題目



----------------------------------------------------------------------------------------------
用Processing來了解泡泡排序法

--------------------------------------------------------------------------------------------
做出Pacman



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;
------------------------------------------------------------------------
讓Pacman可以移動


void setup(){
  size(400,400);
}
int X=100,Y=100,angle=45,diff=1,dx=1,dy=0;
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;
  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;}
}

讓Pacman的嘴巴方向可以朝著前進的方向


void setup(){
  size(400,400);
}
int X=100,Y=100,angle=45,diff=2,dx=1,dy=0,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;}
}

讓Pacman可以吃掉豆子



///eat bean, draw first
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,angle=45,diff=2,dx=1,dy=0,dir=0;
void draw(){
  background(0);
  fill(255);
  for(int y=0;y<10;y++){//小寫的y
    for(int x=0;x<10;x++){//小寫的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;}
 }

沒有留言:

張貼留言