#第05週
-------------------------------------------------------------------------------------------------------------------------
◎眼珠跟滑鼠轉
程式碼:
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);
float newX1=300+100*cos(angle1)/2;
float newY1=200+200*sin(angle1)/2;
ellipse(newX1,newY1,10,10);
float angle2=atan2((mouseY-200)/2,mouseX-100);
float newX2=100+100*cos(angle2)/2;
float newY2=200+200*sin(angle2)/2;
ellipse(newX2,newY2,10,10);
}
◎球跟著線發射
程式碼:
void setup(){
size(400,800);
}
float ballX=200,ballY=600;
float ballVX=0,ballVY=0;
float angle=0;
void draw(){
background(157,223,249);
fill(#F0F8FF); ellipse(200,600,100,100);
line(mouseX,mouseY,200,600);
fill(#FFFDD0); 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);
}
◎連續發射10顆球(超過10顆會當掉)
程式碼:
void setup(){
size(400,800);
}
float [] ballX = new float[10];
float [] ballY = new float[10];
float [] ballVX = new float[10];
float [] ballVY = new float[10];
float [] angle = new float[10];
int now=0;//now which ball is it
void draw(){
background(157,223,249);
fill(#F0F8FF); ellipse(200,600,100,100);
for(int i=0;i<10;i++){
fill(#FFFDD0); ellipse(ballX[i],ballY[i],30,30);
ballX[i]+=ballVX[i];
ballY[i]+=ballVY[i];
}
angle[now] = atan2(mouseY-600,mouseX-200);
}
void mouseMoved(){
ballX[now] = 200+50*cos(angle[now]);
ballY[now] = 600+50*sin(angle[now]);
}
void mousePressed(){
ballVX[now] = cos(angle[now]);
ballVY[now] = sin(angle[now]);
now++;
}
◎連續發射10顆球(保持在10顆不會當掉)
程式碼:
void setup(){
size(400,800);
}
float [] ballX = new float[10];
float [] ballY = new float[10];
float [] ballVX = new float[10];
float [] ballVY = new float[10];
float [] angle = new float[10];
int now=0;//now which ball is it
void draw(){
background(157,223,249);
fill(#F0F8FF); ellipse(200,600,100,100);
for(int i=0;i<10;i++){
fill(#FFFDD0); ellipse(ballX[i],ballY[i],30,30);
ballX[i]+=ballVX[i];
ballY[i]+=ballVY[i];
}
angle[now] = atan2(mouseY-600,mouseX-200);
}
void mouseMoved(){
ballX[now] = 200+50*cos(angle[now]);
ballY[now] = 600+50*sin(angle[now]);
}
void mousePressed(){
ballVX[now] = cos(angle[now]);
ballVY[now] = sin(angle[now]);
now++;
if(now>=10)now=0;//protect the array not bigger than 10
}
沒有留言:
張貼留言