2020年5月1日 星期五

Week10-Lyto Different Color小遊戲

W10-01Lyto  Color Different

GOAL : 做FB小遊戲
找出不同的顏色

畫出2*2的橢圓

 畫出3*3的橢圓

如果要做出很多的橢圓會太麻煩,所以用for迴圈找出它的規律 :


讓橢圓由小變到大

雖然球已經由小變到大,但是每次長得速度都一樣的情況之下
越小顆的橢圓速度會越快跑完
我們要讓速度是一致的,"RR+=/30"


做一顆答案的球(灰色)
目標 : 讓滑鼠碰到的球變紅色
如果滑鼠距離小於直徑,球變紅色



把滑鼠選到會變紅色的mouse程式改成"ans選到的答案"
random=亂數(注意:因為它是浮點數,所以要加int)


"ColorMode"中"HSB"可以讓顏色一直變換





"ColorMode"中"HSB"可以讓顏色自動轉換 : 紅橙黃綠藍靛紫
用滑鼠一到的位置控制



加入colorMode函式到程式碼內
設其中一個顏色不一樣但很接近
判斷當選到正確答案ans時會跳下一組顏色

~~程式碼~~
void setup()
{
  size(300,500);
  colorMode(HSB,256);//改色彩系統
}
int ansX=1,ansY=2;///設答案哪一個球會變紅
int n=3,RR=0;
int H=0;//hue色調
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);//其餘白色
        if(dist(mouseX,mouseY,w+x*R,200+w+y*R)<w);//滑鼠如果碰到<直徑(w)的地方//小於w的意思是說碰到在直徑裡
        {
           if(mousePressed && x==ansX && y==ansY)
           {
             ansX=int (random(n));//random亂數
             ansY=int (random(n));
             H+=20;//改色彩系統
             if(H>256)H=0;
           }
        }
        ellipse(w+x*R,200+w+y*R,RR,RR);//從小變到大
     }
  }
  if(RR<R) RR+=R/30;//如果沒有超過範圍,++從小變到大,小於直徑時大小增加

}//讓速度一致,

沒有留言:

張貼留言