W10-01Lyto Color Different
GOAL : 做FB小遊戲
找出不同的顏色
畫出2*2的橢圓
畫出3*3的橢圓
如果要做出很多的橢圓會太麻煩,所以用for迴圈找出它的規律 :
讓橢圓由小變到大
雖然球已經由小變到大,但是每次長得速度都一樣的情況之下
越小顆的橢圓速度會越快跑完
我們要讓速度是一致的,"RR+=/30"
做一顆答案的球(灰色)
目標 : 讓滑鼠碰到的球變紅色
如果滑鼠距離小於直徑,球變紅色
random=亂數(注意:因為它是浮點數,所以要加int)
"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;//如果沒有超過範圍,++從小變到大,小於直徑時大小增加
}//讓速度一致,
{
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;//如果沒有超過範圍,++從小變到大,小於直徑時大小增加
}//讓速度一致,












沒有留言:
張貼留言