2018年9月27日 星期四

week03

運用程式畫出簡單幾何圖型

void setup(){
  size(500,500);
}
void draw(){
  ellipse(250,250,480,480);//畫一個圓心座標為(250,250),直徑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));
  }
}



















加入半徑迴圈
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));
    }
  }
}



















畫出漂亮的圖
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=0;cx<=800;cx+=40){
    for(int cy=0;cy<=400;cy+=40){
      myTriangle(cx,cy);
    }
  }
}












可上下左右移動的馬力歐

void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");//讀入圖檔
      //寫在setup裡,只讀一次,避免浪費記憶體
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,200,150);
}
void keyPressed(){
  if(keyCode==UP) {marioY-=5;}
  if(keyCode==DOWN) {marioY+=5;}
  if(keyCode==LEFT) {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}












從左上墜落的馬力歐
PImage imgMario;
float marioX=0,marioY=100,marioVX=5,marioVY=0,marioAX=0,marioAY=0.1;
//新增速度及加速度
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,240,180);
  marioX+=marioVX; marioY+=marioVY;
  marioVX+=marioAX; marioVY+=0.98;
  if(marioY>600-150)marioVY*=-0.9;
  if(marioY>400-100)marioVY*=-1;
  if(marioY<0)marioVY*=-0.9;
  if(marioX<0)marioVX*=-1;
}
void keyPressed(){
  if(keyCode==UP) {marioY-=5;}
  if(keyCode==DOWN) {marioY+=5;}
  if(keyCode==LEFT) {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}














碰到牆彈跳的馬力歐
PImage imgMario;
float marioX=0,marioY=100,marioVX=5,marioVY=0,marioAX=0,marioAY=0.1;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,240,180);
  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;}
}




沒有留言:

張貼留言