今天進度:
1.產生三角形
2.改角度位置
3.改成會互動的圖形
4.會跟著鼠標移動的圖形
5.會自轉的圖形
6.接水果
1.
程式碼:
//triangle(50,0, 0, 90 , 100,90);
size(500,500);
for(int angle=0; angle<360; angle+=120) //角度從0度開始,角度需小於360度,每次加120度
{
float angle2 = radians(angle); //角度2等於角度的弧度
float x = 100+cos(angle2) * 50;//cos(角度)*半徑
float y = 100+sin(angle2) * 50;//sin(角度)*半徑
ellipse( x, y, 2, 2); //畫2*2圓
}
執行結果:
↑產生三角形
↑產生圓形
程式碼:
//triangle(50,0, 0, 90 , 100,90);
size(500,500);
beginShape();
for(int angle=0; angle<360; angle+=30)
{
float angle2 = radians(angle);
float x = 100+cos(angle2) * 50;
float y = 100+sin(angle2) * 50;
vertex(x,y);//ellipse( x, y, 2, 2);//產生頂點(x,y)
}
endShape();
執行結果:
↑產生12邊形(最後一邊未有黑線)
↑endShape內加入CLOSE可以完成圖形黑邊
3.
程式碼:
void setup()
{
size(500,500);
}
void draw()
{
beginShape();
for(int angle=0; angle<360; angle+=145)
{
float angle2 = radians(angle+mouseX);//角度2隨著角度加滑鼠x座標改變弧度
float x = 100+cos(angle2) * 50;
float y = 100+sin(angle2) * 50;
vertex(x,y);//ellipse( x, y, 2, 2);
}
endShape(CLOSE);
}
執行結果:
↑會轉動的等腰三角形
程式碼:
void setup()
{
size(500,500);
}
void draw()
{
beginShape();
for(int angle=0; angle<360; angle+=145)
{
float angle2 = radians(angle+mouseX);//角度2隨著角度加滑鼠x座標改變弧度
float x = mouseX+cos(angle2) * 50;//x隨滑鼠x座標加角度2改變
float y = mouseY+sin(angle2) * 50;//y隨滑鼠y座標加角度2改變
vertex(x,y);//ellipse( x, y, 2, 2);
}
endShape(CLOSE);
}
執行結果:
5.
程式碼:
void setup()
{
size(500,500);
}
void draw()
{
beginShape();
for(int angle=0; angle<360; angle+=145)
{
float angle2 = radians(angle+frameCount);//角度2隨著角度加幀數而改變
float x = mouseX+cos(angle2) * 50;//x隨滑鼠x座標加角度2改變
float y = mouseY+sin(angle2) * 50;//y隨滑鼠y座標加角度2改變
vertex(x,y);//ellipse( x, y, 2, 2);
}
endShape(CLOSE);
}
frameCount一秒鐘轉60次
執行結果:
6.
程式碼:
float fruitX=150, fruitY=0;
float kidX=150, kidY=450;
int score=0;
void setup()
{
size(500,500);
}
void draw()
{
background(255);
rect(kidX, kidY, 50, 80);
kidX=mouseX;
ellipse(fruitX, fruitY, 60 , 80);
fruitY++;
if(fruitY>kidY)
{
if(kidX< fruitX && fruitX < kidX+80)//如果水果在籃子的範圍內會執行以下動作
{
score+=10;
fruitY=0; fruitX=random(50,450);
}
else//水果超過籃子的範圍
{
fruitY=0; fruitX=random(50,450);//水果重生
}
}
}
執行結果:
程式碼:
float [] fruitX = new float[10];
float [] fruitY = new float[10];
float kidX=150, kidY=450;
int score=0;
void setup()
{
size(500,500);
for(int i=0; i<10; i++)
{
fruitX[i] = random(50,450);
fruitY[i] = -i*100;
}
}
void draw()
{
background(255);
rect(kidX, kidY, 50, 80);
kidX=mouseX;
for(int i=0; i<10; i++)//掉下許多水果
{
ellipse(fruitX[i], fruitY[i], 60 , 80);
fruitY[i]++;
if(fruitY[i]>kidY)
{
if(kidX< fruitX[i] && fruitX[i] < kidX+80)
{
score+=10;
fruitY[i]=0; fruitX[i]=random(50,450);
}
else
{
fruitY[i]=0; fruitX[i]=random(50,450);
}
}
}
}
執行結果:









沒有留言:
張貼留言