(1)
//week07_1_arras01_background_fill_stroke_ellipse_rect void setup() { size(500, 400); } float x=250, y=200; void draw() { background(215, 184, 200); fill(167, 167, 175); stroke(110, 110, 113); strokeWeight(4); rect(240, 160, 20, 20);//砲管,砲塔 fill(204, 102, 156); stroke(125, 84, 105); strokeWeight(3); ellipse(x, y, 55, 55);//圓形的身體 line(x, y, mouseX, mouseY); }
(2)
//week07_2_arras02_atan_cos_sin void setup() { size(500, 400); } float x=250, y=200; void draw() { background(215, 184, 200); float dx=mouseX-x,dy=mouseY-y; float a=atan2(dy,dx); strokeWeight(20); line(x,y,x+cos(a)*40,y+sin(a)*40); fill(167, 167, 175); stroke(110, 110, 113); strokeWeight(4); rect(240, 160, 20, 20);//砲管,砲塔 fill(204, 102, 156); stroke(125, 84, 105); strokeWeight(3); ellipse(x, y, 55, 55);//圓形的身體 ///line(x, y, mouseX, mouseY); }
(3)
//week07_3_arras03_atan_angle_rotate_translate
void setup() {
size(500, 400);
}
float x=250, y=200;
void draw() {
background(215, 184, 200);
float dx=mouseX-x,dy=mouseY-y;
float a=atan2(dy,dx);
line(x,y,mouseX,mouseY);
myTank(x,y,a);
}
void myTank(float x,float y,float a){
translate(x,y);
rotate(a);//旋轉
fill(167, 167, 175);
stroke(110, 110, 113);
strokeWeight(4);
rect(20, -10, 20, 20);//砲管,砲塔
fill(204, 102, 156);
stroke(125, 84, 105);
strokeWeight(3);
ellipse(0, 0, 55, 55);//圓形的身體
}
(4)//week07_4_arras04_background_for_line_live void setup() { size(500, 400); } void keyPressed() { if (keyCode==RIGHT)x+=1; if (keyCode==LEFT)x-=1; if (keyCode==UP)y-=1; if (keyCode==DOWN)y+=1; } float x=250, y=200; void draw() { ///background(215, 184, 200); ///stroke(211,180,196); background(219); stroke(210); strokeWeight(1); for (int i=0; i<10; i++) { line(0, i*100, 500, i*30); line(i*30, 0, i*30, 500); } float dx=mouseX-x, dy=mouseY-y; float a=atan2(dy, dx); line(x, y, mouseX, mouseY); myTank(x, y, a); } void myTank(float x, float y, float a) { translate(x, y); rotate(a);//旋轉 fill(167, 167, 175); stroke(110, 110, 113); strokeWeight(4); rect(20, -10, 20, 20);//砲管,砲塔 fill(204, 102, 156); stroke(125, 84, 105); strokeWeight(3); ellipse(0, 0, 55, 55);//圓形的身體 }
(5)
//week07_5_arras05_correct move void setup() { size(500, 400); } void keyPressed() { if (keyCode==RIGHT)x+=1; if (keyCode==LEFT)x-=1; if (keyCode==UP)y-=1; if (keyCode==DOWN)y+=1; } float x=250, y=200; void draw() { ///background(215, 184, 200); ///stroke(211,180,196); background(219); translate(-x, -y); translate(width/2, height/2);//把0,0移畫面中心 float mx=mouseX+x-width/2, my=mouseY+y-height/2; ellipse(mx, my, 8, 8); stroke(210); strokeWeight(1); for (int i=0; i<10; i++) { line(0, i*100, 500, i*30); line(i*30, 0, i*30, 500); } float dx=mx-x, dy=my-y; float a=atan2(dy, dx); line(x, y, mx, my); myTank(x, y, a); } void myTank(float x, float y, float a) { translate(x, y); rotate(a);//旋轉 fill(167, 167, 175); stroke(110, 110, 113); strokeWeight(4); rect(20, -10, 20, 20);//砲管,砲塔 fill(204, 102, 156); stroke(125, 84, 105); strokeWeight(3); ellipse(0, 0, 55, 55);//圓形的身體 }
(6)
//week07_6_arras06_vx_vy_void_keyPressed_void_keyReleased_void_keyReleased_void_draw
void setup() {
size(500, 400);
}
void keyPressed() {//按下去時,會有速度,放開後,速度要變成0
if (keyCode==RIGHT)vx=1;//x+=1;
if (keyCode==LEFT)vx=-1;//x-=1;
if (keyCode==UP)vy=-1;//y-=1;
if (keyCode==DOWN)vy=1;//y+=1;
}
void keyReleased() {
if (keyCode==LEFT||keyCode==RIGHT)vx=0;
if (keyCode==UP||keyCode==DOWN)vy=0;
}
float x=250, y=200, vx=0, vy=0;
void draw() {
x+=vx;
y+=vy;
///background(215, 184, 200);
///stroke(211,180,196);
background(219);
translate(-x, -y);
translate(width/2, height/2);//把0,0移畫面中心
float mx=mouseX+x-width/2, my=mouseY+y-height/2;
ellipse(mx, my, 8, 8);
stroke(210);
strokeWeight(1);
for (int i=0; i<10; i++) {
line(0, i*100, 500, i*30);
line(i*30, 0, i*30, 500);
}
float dx=mx-x, dy=my-y;
float a=atan2(dy, dx);
line(x, y, mx, my);
myTank(x, y, a);
}
void myTank(float x, float y, float a) {
translate(x, y);
rotate(a);//旋轉
fill(167, 167, 175);
stroke(110, 110, 113);
strokeWeight(4);
rect(20, -10, 20, 20);//砲管,砲塔
fill(204, 102, 156);
stroke(125, 84, 105);
strokeWeight(3);
ellipse(0, 0, 55, 55);//圓形的身體
}
(7)//week07_7_angle_bulletx_bullety_bulletvx,bulletvy
void setup() {
size(500, 400);
}
void keyPressed() {//按下去時,會有速度,放開後,速度要變成0
if (keyCode==RIGHT)vx=1;//x+=1;
if (keyCode==LEFT)vx=-1;//x-=1;
if (keyCode==UP)vy=-1;//y-=1;
if (keyCode==DOWN)vy=1;//y+=1;
}
void keyReleased() {
if (keyCode==LEFT||keyCode==RIGHT)vx=0;
if (keyCode==UP||keyCode==DOWN)vy=0;
}
float x=250, y=200, vx=0, vy=0;
void draw() {
x+=vx;
y+=vy;
///background(215, 184, 200);
///stroke(211,180,196);
background(219);
translate(-x, -y);
translate(width/2, height/2);//把0,0移畫面中心
float mx=mouseX+x-width/2, my=mouseY+y-height/2;
ellipse(mx, my, 8, 8);
stroke(210);
strokeWeight(1);
for (int i=0; i<10; i++) {
line(0, i*100, 500, i*30);
line(i*30, 0, i*30, 500);
}
float dx=mx-x, dy=my-y;
float a=atan2(dy, dx);
angle=a;
line(x, y, mx, my);
pushMatrix();
myTank(x, y, a);
popMatrix();
if(bulletVX!=0&&bulletVY!=0){
bulletX+=bulletVX;
bulletY+=bulletVY;
ellipse(bulletX,bulletY,20,20);
}
}
float angle,bulletX=0,bulletY=0,bulletVX=-1,bulletVY=0;
void mousePressed(){
bulletX=x;
bulletY=y;
bulletVX=cos(angle);
bulletVY=sin(angle);
}
void myTank(float x, float y, float a) {
translate(x, y);
rotate(a);//旋轉
fill(167, 167, 175);
stroke(110, 110, 113);
strokeWeight(4);
rect(20, -10, 20, 20);//砲管,砲塔
fill(204, 102, 156);
stroke(125, 84, 105);
strokeWeight(3);
ellipse(0, 0, 55, 55);//圓形的身體
}
(8)//week07_8_arras08_array_many_bullets
void setup() {
size(500, 400);
}
void keyPressed() {//按下去時,會有速度,放開後,速度要變成0
if (keyCode==RIGHT)vx=1;//x+=1;
if (keyCode==LEFT)vx=-1;//x-=1;
if (keyCode==UP)vy=-1;//y-=1;
if (keyCode==DOWN)vy=1;//y+=1;
}
void keyReleased() {
if (keyCode==LEFT||keyCode==RIGHT)vx=0;
if (keyCode==UP||keyCode==DOWN)vy=0;
}
float x=250, y=200, vx=0, vy=0;
void draw() {
x+=vx;
y+=vy;
///background(215, 184, 200);
///stroke(211,180,196);
background(219);
translate(-x, -y);
translate(width/2, height/2);//把0,0移畫面中心
float mx=mouseX+x-width/2, my=mouseY+y-height/2;
ellipse(mx, my, 8, 8);
stroke(210);
strokeWeight(1);
for (int i=0; i<30; i++) {
line(0, i*30, 500, i*30);
line(i*30, 0, i*30, 500);
}
float dx=mx-x, dy=my-y;
float a=atan2(dy, dx);
angle=a;
line(x, y, mx, my);
pushMatrix();
myTank(x, y, a);
popMatrix();
for (int i=0; i<bulletN; i++) {
bulletX[i]+=bulletVX[i];
bulletY[i]+=bulletVY[i];
ellipse(bulletX[i], bulletY[i], 20, 20);
}
}
float angle;
int bulletN=0;
float[]bulletX=new float[100];
float[]bulletY=new float[100];
float[]bulletVX=new float[100];
float[]bulletVY=new float[100];
void mousePressed() {
int i=bulletN;
bulletX[i]=x;
bulletY[i]=y;
bulletVX[i]=cos(angle);
bulletVY[i]=sin(angle);
bulletN++;
}
void myTank(float x, float y, float a) {
translate(x, y);
rotate(a);//旋轉
fill(167, 167, 175);
stroke(110, 110, 113);
strokeWeight(4);
rect(20, -10, 20, 20);//砲管,砲塔
fill(204, 102, 156);
stroke(125, 84, 105);
strokeWeight(3);
ellipse(0, 0, 55, 55);//圓形的身體
}
(9)//week07_9_arras09_recycle_bullet_move_right_to_left void setup() { size(500, 400); } void keyPressed() {//按下去時,會有速度,放開後,速度要變成0 if (keyCode==RIGHT)vx=1;//x+=1; if (keyCode==LEFT)vx=-1;//x-=1; if (keyCode==UP)vy=-1;//y-=1; if (keyCode==DOWN)vy=1;//y+=1; } void keyReleased() { if (keyCode==LEFT||keyCode==RIGHT)vx=0; if (keyCode==UP||keyCode==DOWN)vy=0; } float x=250, y=200, vx=0, vy=0; void draw() { x+=vx; y+=vy; ///background(215, 184, 200); ///stroke(211,180,196); background(219); translate(-x, -y); translate(width/2, height/2);//把0,0移畫面中心 float mx=mouseX+x-width/2, my=mouseY+y-height/2; ellipse(mx, my, 8, 8); stroke(210); strokeWeight(1); for (int i=0; i<30; i++) { line(0, i*30, 500, i*30); line(i*30, 0, i*30, 500); } float dx=mx-x, dy=my-y; float a=atan2(dy, dx); angle=a; line(x, y, mx, my); pushMatrix(); myTank(x, y, a); popMatrix(); for (int i=0; i<bulletN; i++) { bulletX[i]+=bulletVX[i]; bulletY[i]+=bulletVY[i]; ellipse(bulletX[i], bulletY[i], 20, 20); } } float angle; int bulletN=0; float[]bulletX=new float[100]; float[]bulletY=new float[100]; float[]bulletVX=new float[100]; float[]bulletVY=new float[100]; void mousePressed() { int i=bulletN; bulletX[i]=x; bulletY[i]=y; bulletVX[i]=cos(angle); bulletVY[i]=sin(angle); bulletN++; if (bulletN==100) { for (int k=0; k<50; k++) { bulletX[k]=bulletX[k+50]; bulletY[k]=bulletY[k+50]; bulletVX[k]=bulletVX[k+50]; bulletVY[k]=bulletVY[k+50]; } bulletN=50; } println(bulletN); } void myTank(float x, float y, float a) { translate(x, y); rotate(a);//旋轉 fill(167, 167, 175); stroke(110, 110, 113); strokeWeight(4); rect(20, -10, 20, 20);//砲管,砲塔 fill(204, 102, 156); stroke(125, 84, 105); strokeWeight(3); ellipse(0, 0, 55, 55);//圓形的身體 }
(10)//week07_10_arras10_bullet_for_timeoutvoid setup() { size(500, 400); } void keyPressed() {//按下去時,會有速度,放開後,速度要變成0 if (keyCode==RIGHT)vx=1;//x+=1; if (keyCode==LEFT)vx=-1;//x-=1; if (keyCode==UP)vy=-1;//y-=1; if (keyCode==DOWN)vy=1;//y+=1; } void keyReleased() { if (keyCode==LEFT||keyCode==RIGHT)vx=0; if (keyCode==UP||keyCode==DOWN)vy=0; } float x=250, y=200, vx=0, vy=0; void draw() { x+=vx; y+=vy; ///background(215, 184, 200); ///stroke(211,180,196); background(219); translate(-x, -y); translate(width/2, height/2);//把0,0移畫面中心 float mx=mouseX+x-width/2, my=mouseY+y-height/2; ellipse(mx, my, 8, 8); stroke(210); strokeWeight(1); for (int i=0; i<30; i++) { line(0, i*30, 500, i*30); line(i*30, 0, i*30, 500); } float dx=mx-x, dy=my-y; float a=atan2(dy, dx); angle=a; line(x, y, mx, my); pushMatrix(); myTank(x, y, a); popMatrix(); for (int i=0; i<bulletN; i++) { bulletX[i]+=bulletVX[i]; bulletY[i]+=bulletVY[i]; ellipse(bulletX[i], bulletY[i], 20, 20); bulletT[i]--; if (bulletT[i]==0) { for (int k=i+1; i<bulletN; k++) { bulletX[k-1]=bulletX[k]; bulletY[k-1]=bulletY[k]; bulletVX[k-1]=bulletVX[k]; bulletVY[k-1]=bulletVY[k]; bulletT[k-1]=bulletT[k]; } bulletN--; } } println(bulletN); } float angle; int bulletN=0; float[]bulletX=new float[100]; float[]bulletY=new float[100]; float[]bulletVX=new float[100]; float[]bulletVY=new float[100]; int []bulletT=new int [100]; void mousePressed() { int i=bulletN; bulletX[i]=x; bulletY[i]=y; bulletVX[i]=cos(angle); bulletVY[i]=sin(angle); bulletT[i]=600;//每個子彈只有10秒壽命 bulletN++; if (bulletN==100) { for (int k=0; k<50; k++) { bulletX[k]=bulletX[k+50]; bulletY[k]=bulletY[k+50]; bulletVX[k]=bulletVX[k+50]; bulletVY[k]=bulletVY[k+50]; } bulletN=50; } println(bulletN); } void myTank(float x, float y, float a) { translate(x, y); rotate(a);//旋轉 fill(167, 167, 175); stroke(110, 110, 113); strokeWeight(4); rect(20, -10, 20, 20);//砲管,砲塔 fill(204, 102, 156); stroke(125, 84, 105); strokeWeight(3); ellipse(0, 0, 55, 55);//圓形的身體 }
沒有留言:
張貼留言