2018年10月7日 星期日

Week03_05160664_黃柏穎

Week03

畫出幾何圖形
程式碼:void setup(){
 size(600,600); //視窗大小
}
void draw(){
  ellipse(300,300,550,550);//畫出圓形
  for(int i=275;i>0;i-=10){//用迴圈畫出三角形次數
    for(float angle=0;angle<PI*2;angle+=PI/3){//用迴圈畫出三角形角度
      triangle(300,300,300+i*cos(angle),300+i*sin(angle),300+i*cos(angle+PI/3),300+i*sin(angle+PI/3));//畫出三角形
//(用角度值來計算長度畫出三角形)
用cos(angle)和sin(angle)來畫
(250,250)是圓心的部分
240是半徑
    }
  }
}
畫出很多三角形
先畫出很多圓形
程式碼:void setup(){
  size(800,400);  
}
void draw(){
  background(255);//設背景白色
  for(int cx =10; cx<800; cx+=40){//畫圓形的X座標
    for(int cy=10; cy<400;cy+=40){//畫圓形的Y座標
   ellipse(cx,cy,30,30);//畫出圓形
    }
  }
}
接著畫出三角形
程式碼: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 =10; cx<800; cx+=40){
    for(int cy=10; cy<400;cy+=40){
       myTriangle(cx,cy);//呼叫函式
    }
  }
}

畫出Mario

程式碼:PImage imgMario;
float marioX=0, marioY=0;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");//Only Once!(讀圖檔)
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,100,150);
}//Don't load any image in draw() 
重要*圖檔要在setup中讀,不能在draw裡面
void keyPressed(){//使用鍵盤移動mario
  if(keyCode==UP)    {marioY-=5;}
  if(keyCode==DOWN)  {marioY+=5;}
  if(keyCode==LEFT)  {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}
Mario墜落
程式碼:PImage imgMario;
float marioX=0, marioY=0, marioVX=2, marioVY=0,marioAX=0, marioAY=0.1;//替Mario設掉落數值
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");//Only Once!!
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,100,150);//讓Mario墜落
  marioX +=marioVX;   marioY +=marioVY;
  marioVX+=marioAX;   marioVY+=marioAY;
}//Don't load any image in draw()
void keyPressed(){
  if(keyCode==UP)    {marioY-=5;}
  if(keyCode==DOWN)  {marioY+=5;}
  if(keyCode==LEFT)  {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}
Mario蹦蹦跳
程式碼: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");//Only Once!!
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,100,150);
  marioX +=marioVX;   marioY +=marioVY;
  marioVX+=marioAX;   marioVY+=0.98;
  if(marioY>600-150) marioVY*=-0.9;//讓Mario不跑出視窗大小
  if(marioX>400-100) marioVX*=-1;//同上
  if(marioY<0) marioVY*=-0.9;//同上
  if(marioX<0) marioVX*=-1;//同上
}//Don't load any image in draw()
void keyPressed(){
  if(keyCode==UP)    {marioY-=5;}
  if(keyCode==DOWN)  {marioY+=5;}
  if(keyCode==LEFT)  {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}

沒有留言:

張貼留言