2020年5月8日 星期五

week 11

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=2;
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;}
}


鍵盤可移動且小精靈方向改變的小精靈












//加入 dir
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;}
}

沒有留言:

張貼留言