2018年9月27日 星期四

Week 03 宋侑恩

Week 03 Part 1-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));
  }
}


Week 03 Part 1-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){ ///加入變數R來代替半徑
      noFill(); ///清空填色
      triangle(250,250,
               250+R*cos(angle),250+R*sin(angle),
               250+R*cos(angle+PI/3),250+R*sin(angle+PI/3));
    } 
  }
}


Week 03 Part 1-3 - 將線畫得更戲更漂亮

程式碼:

void setup(){
  size(500,500);
  noFill();
}
void draw(){
  background(255);
  int cx=width/2,cy=height/2;
  float a0=PI/6.0;
  strokeWeight(1);
  stroke(0);
  for(int r=8;r<=240;r+=8){
    for(float a=a0;a<=2*PI+2.0;a+=PI/3.0){
      triangle(cx,cy,
               cx+r*cos(a),cy+r*sin(a),
               cx+r*cos(a+PI/3),cy+r*sin(a+PI/3));
    } 
  }
}

Week 03 Part 2 - 畫出好看的三角形背景

程式碼:

void setup(){
  size(800,400);
}
void myTriangle(int cx, int cy){
  float a= -PI/2;
  for(int R=15;R>0;R-=5){
    triangle(cx+R*cos(a),cy+R*sin(a),
             cx+R*cos(a+2*PI/3),cy+R*sin(a+2*PI/3),
             cx+R*cos(a-2*PI/3),cy+R*sin(a-2*PI/3));
  }
}
void draw(){
  background(255);
  for(int cx=20;cx<800;cx+=40){
    for(int cy=20;cy<400;cy+=40){
      myTriangle(cx,cy);
    }
  }
}


Week 03 Part 3-1 - 用鍵盤控制瑪莉歐

程式碼:

PImage imgMario;
float marioX=0,marioY=0;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png"); ///只讀一次
}
void draw(){
  background(255);
  image(imgMario, marioX, marioY, 100, 150);
}
void keyPressed(){
  if(keyCode==UP)        {marioY-=5;}
  if(keyCode==DOWN) {marioY+=5;}
  if(keyCode==LEFT)    {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}


Week 03 Part 3-2 - 有重力加速度的瑪莉歐

程式碼:

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, 100, 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;}
}


Week 03 Part 3-3 - 跳跳瑪莉歐

程式碼:

PImage imgMario;
float marioX=0,marioY=100,marioVX=1,marioVY=0,marioAX=0,marioAY=0.1;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  //background(255); ///將背景清除好看出彈跳
  image(imgMario, marioX, marioY, 100, 150);
  marioX += marioVX; marioVX +=0;
  marioY += marioVY; marioVY+=0.98;
  if(marioY>500){
    marioVY = -marioVY * 0.8;
    marioY = 500;
  }
  if(marioX>300) marioVX = -marioVX;
  if(marioX<0)   marioVX = -marioVX;
}
void keyPressed(){
  if(keyCode==UP)    {marioY-=5;}
  if(keyCode==DOWN)  {marioY+=5;}
  if(keyCode==LEFT)  {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}


把背景加上,彈跳的瑪莉歐


沒有留言:

張貼留言