2020年5月3日 星期日

Winnie HO Week10

今天要來做一個近期很夯的小遊戲!(IG限時上有 可以去玩!!)

size(300,500);
ellipse(50,200+50,100,100);
ellipse(50+100,200+50,100,100);
ellipse(50+100+100,200+50,100,100);


ellipse(50,200+50+100,100,100);
ellipse(50+100,200+50+100,100,100);
ellipse(50+100+100,200+50+100,100,100);


ellipse(50,200+50+100+100,100,100);
ellipse(50+100,200+50+100+100,100,100);
ellipse(50+100+100,200+50+100+100,100,100);

這是3*3的圓~

















size(300,500);
for(int y=0;y<3;y++)
{
  for(int x=0;x<3;x++)
  {
    ellipse(50+x*100,200+50+y*100,100,100);
  }
}

這是簡化的版本!

















size(400,600);
for(int y=0; y<4; y++)
{
  for(int x=0; x<4; x++)
  {
    ellipse(50+x*100,200+50+y*100,100,100);
  }
}

後來老師說可以試試4*4的圓~我就自己嘗試弄出來了!成就感爆棚OMG(是在開心什麼??

















size(300,500);
int n=5;
int R=300/n,w=R/2;
for(int y=0; y<n; y++)
{
  for(int x=0; x<n; x++)
  {
    ellipse(w+x*R,200+w+y*R,R,R);
  }
}

雖然我自己弄出了4*4,但老師教的上面這個方法更好,因為我的方法如果要弄出更多圓,就需要一直改程式碼,老師的方法則不用一直改!專業的果然不一樣啊!!小女子受教了!

















void setup()
{
  size(300,500);
}
int n=5;
int R=300/n,w=R/2,RR=0;
void draw()
{
  for(int y=0;y<n;y++)
  {
    for(int x=0;x<n;x++)
    {
      ellipse(w+x*R,200+w+y*R,RR,RR); //從小變到大
    }
  }
  if(RR<R)RR++;
}

讓球由小變到大!

















void setup()
{
  size(300,500);
}
int ansX=1,ansY=2; //答案
int n=3,RR=0; //會變動的R直徑,我們叫它RR
void draw()
{
  background(0);
  int R=300/n,w=R/2;
  for(int y=0;y<n;y++)
  {
    for(int x=0;x<n;x++)
    {
      if(x==ansX&&y==ansY)fill(71); //答案要有點不同
      else fill(255);
      if( dist( mouseX, mouseY, w+x*R, 200+w+y*R)<w)fill(255,60,40);
      ellipse( w+x*R, 200+w+y*R, RR, RR); //從小變到大
    }
  }
  if(RR<R)RR+=R/30; //如果還沒超過範圍,++從小變到大
} //為了讓速度一致,改成RR+=R/10變成很快

















void setup()
{
  size(300,500);
  colorMode(HSB,256); //TODO:改色彩系統
}
int ansX=1,ansY=2; //答案
int n=3,RR=0; //會變動的R直徑,我們叫它RR
int H=0;
void draw()
{
  background(0);
  int R=300/n,w=R/2;
  for(int y=0;y<n;y++)
  {
    for(int x=0;x<n;x++)
    {
      if(x==ansX&&y==ansY)fill(H-10,243,234); //答案要有點不同
      else fill(H,255,255); //TODO:改色彩系統
      if(dist(mouseX,mouseY,w+x*R,200+w+y*R)<w) //現在的mouse選中誰
      {
        if(mousePressed && x==ansX && y==ansY) //他剛好也是答案
        {
          ansX=int (random(n));
          ansY=int (random(n));
          H+=20; //TODO:改色彩系統
          if(H>256)H=0;
        }
      }
      ellipse(w+x*R,200+w+y*R,RR,RR); //從小變到大...
    }
  }
  if(RR<R)RR+=R/30; //如果還沒超過範圍,++從小變到大
}

Game Over~~~~

沒有留言:

張貼留言