目標一:做出眼睛動動
1.讓眼睛跟著滑鼠移動(有輔助線)
程式碼:
void setup()
{
size(400,400);
}
void draw()
{
background(128);
strokeWeight(20);
ellipse(100,200,180,360); //右眼
ellipse(300,200,180,360); //左眼
ellipse(100,200,10,10);
ellipse(300,200,10,10);
line(mouseX,mouseY,100,200); //畫一條線連接右眼
line(mouseX,mouseY,300,200); //畫一條線連接左眼
}
2.讓眼睛跟著滑鼠移動,用tan寫法
程式碼:
void setup()
{
size(400,400);
}
void draw()
{
background(128);
strokeWeight(20);
ellipse(100,200,180,360);
ellipse(300,200,180,360);
float angle1=atan2((mouseY-200)/2,mouseX-300); //角度=atan2(分子/分母)
float newX1=300+100*cos(angle1)/2; //右眼珠的X移動半徑大小
float newY1=200+200*sin(angle1)/2; //右眼珠的Y移動半徑大小
ellipse(newX1,newY1,10,10);
float angle2=atan2((mouseY-200)/2,mouseX-100);
float newX2=100+100*cos(angle2)/2; //左眼珠的X移動半徑大小
float newY2=200+200*sin(angle2)/2; //左眼珠的Y移動半徑大小
ellipse(newX2,newY2,10,10);
}
目標一:做出泡泡龍射擊
1.射擊泡泡的概念
1.1線可隨滑鼠增長,球黏滑鼠移動
1.2自由移動,滑鼠移動球會自動歸回
1.3自由發射,滑鼠移動球會自動歸回
程式碼:
void setup()
{
size (400,600);
}
float ballX=200 ,ballY=600;
float ballVX=0 ,ballVY=0;
float angle=0;
void draw()
{
background(0,128,26);
fill(#FCC557); ellipse(200,600,100,100);
line(mouseX, mouseY,200,600);
fill(#D2FF21); ellipse(ballX,ballY,30,30);
angle = atan2(mouseY-600, mouseX-200);
ballX+=ballVX;
ballY+=ballVY;
}
void mouseMoved()
{
ballX=200+50*cos(angle);
ballY=600+50*sin(angle);
}
void mousePressed()
{
ballVX=cos(angle);
ballVY=sin(angle);
}
沒有留言:
張貼留言