2020年6月18日 星期四

week 17


今天老師給我們看了很多專題的小遊戲,並教我們這些簡單的小遊戲該如何寫出來!!

首先,先畫出兩個點點。



void setup(){
  size(300,300);
}
void draw()
{
    background(#002966);//上背景顏色
    fill(#b7efff);//上顏色
    noStroke();
    ellipse(100,150,13,13);
    ellipse(200,150,13,13);
}



void setup(){
  size(300,300);
}
void draw()
{
    background(#002966);
    stroke(#b7efff);
    line(100,150,200,150);//在中間加上一條線
 
    fill(#b7efff);
    noStroke();
    ellipse(100,150,13,13);
    ellipse(200,150,13,13);

}

有了點、線後,現在我們開始讓線可以移動。




void setup(){
  size(300,300);
}
float x=200,y=150;//要動就要用變數才可以!!
void draw()
{
    background(#002966);
    stroke(#b7efff);
    line(100,150,x,y);
 
    fill(#b7efff);
    noStroke();
    ellipse(100,150,13,13);
    ellipse(x,y,13,13);
}
void mouseDragged()
{
  x=mouseX;  y=mouseY;//如此,線便可以跟著滑鼠一起動




}

接著我們讓線可以拉了後放開彈回去!!




























就像上面這兩張圖片,放開後會變成第二張圖

void setup(){
  size(300,300);

}
float x=200,y=150;
void draw()
{
    background(#002966);
    stroke(#b7efff);
    line(100,150,x,y);
 
    fill(#b7efff);
    noStroke();
    ellipse(100,150,13,13);
    ellipse(x,y,13,13);
    if( !mousePressed){//沒有按下去
      float dx=x-100,dy=y-150;
      float len=sqrt(dx*dx+dy*dy);
      x-=dx*(len-100)/len*0.1;//假如乘上0.1,那線縮回去的速度會變得比較緩慢,也會看起來比較遊戲的感覺
      y-=dy*(len-100)/len*0.1;
    }
}
void mouseDragged()
{
  x=mouseX;  y=mouseY;
}

接著,我們讓這條線可以拉一次後就來回伸縮。



線縮最短的長度



線縮最短的長度



旋轉收縮也是可以的,只要滑鼠移動位置點擊就可以了!!

我們將速度加上去!!

void setup(){
  size(300,300);
}
float x=200,y=150;
float vx=0,vy=0;//拉動的時候不可以有速度
void draw()
{
    background(#002966);
    stroke(#b7efff);
    line(100,150,x,y);
 
    fill(#b7efff);
    noStroke();
    ellipse(100,150,13,13);
    ellipse(x,y,13,13);
    if( !mousePressed){
      float dx=x-100,dy=y-150;
      float len=sqrt(dx*dx+dy*dy);
      vx-=dx*(len-100)/len*0.001;//這裡的速度也要加上去
      vy-=dy*(len-100)/len*0.001;//越大越強,越小越弱
      x+=vx;
      y+=vy;
    }
}
void mouseDragged()
{
  x=mouseX;  y=mouseY;
}

接著開始另一個十分相像的小遊戲




這個程式呢,小白色的框框他會跟滑鼠的方向移動

void setup(){
  size(400,300);
}
float x=200,y=150;
void draw()
{
    background(#002966);
    stroke(#b7efff);
    fill(255);
    rect(x,y,80,20);
    float dx=x-mouseX,dy=y-mouseY;
    x-=dx*0.1;//加上這個數值後,會讓他有一點滑行的感覺
    y-=dy*0.1;
}


在最後一堂程式課,小葉老師教了很多小遊戲,也學到了各種小技巧!!
大一的程式設計也終於結束啦~!!

沒有留言:

張貼留言