2018年9月27日 星期四

week03

做出好看的圖案

1.先畫出一個圓形跟多個三角形


void setup(){
  size(500,500);
}
void draw(){
  ellipse(250,250,480,480);    畫圓
  for(float angle=0; angle<PI*2;angle+=PI/3){
     triangle(250,250,   畫三角形
             250+240*cos(angle),250+240*sin(angle),   
             250+240*cos(angle+PI/3),250+240*sin(angle+PI/3)); 
  }
}      角度用sin cos 


2.改變三角形的半徑


void setup(){
  size(500,500);
}
void draw(){
  ellipse(250,250,480,480);
  for(float angle=0; angle<PI*2;angle+=PI/3){
    for(int R=0;R<=240;R+=20){
      noFill();
      triangle(250,250,
             250+R*cos(angle),250+R*sin(angle),
             250+R*cos(angle+PI/3),250+R*sin(angle+PI/3)); 
    }
  }讓半徑變小就變成很像蜘蛛網的東西
}


3. 馬力歐跑起來



PImage imgMario;
float marioX=0, marioY=0;   //馬力歐起始點在(0,0)
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  background(255);
  image(imgMario, marioX, marioY, 150, 150);
}
void keyPressed(){      //用鍵盤來操控馬力歐
  if(keyCode==UP)          {marioY-=5;}     
  if(keyCode==DOWN)   {marioY+=5;}
  if(keyCode==LEFT)      {marioX-=5;}
  if(keyCode==RIGHT)   {marioX+=5;}
}


4.讓馬力歐有地心引力or重力or加速度


PImage imgMario;
float marioX=0, marioY=0, marioVX=2, marioVY=0,marioAX=0, marioAY=0.1;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  //background(255);
  image(imgMario, marioX, marioY, 150, 150);
  marioX+=marioVX; marioY+=marioVY;
  marioVX+=marioAX; marioVY+=marioAY;
}
void keyPressed(){
  if(keyCode==UP)     {marioY-=5;}
  if(keyCode==DOWN)   {marioY+=5;}
  if(keyCode==LEFT)   {marioX-=5;}
  if(keyCode==RIGHT)  {marioX+=5;}
}

5.彈跳的馬力歐


void draw(){
  background(255);
  image(imgMario, marioX, marioY, 150, 150);
  marioX+=marioVX; marioY+=marioVY;
  marioVX+=marioAX; marioVY+=marioAY;
  if(marioY>600-150) marioVY*=-0.9;
  if(marioX>400-100) marioVX*=-1;
  if(marioX<0) marioVX*=-1;
  if(marioY<0) marioVY*=-0.9;
}

沒有留言:

張貼留言