2024年10月21日 星期一

week07.0313

 //week07_1_arras01_background_fill_stroke_ellipse_rect_line

void setup(){

  size(500,700);

}

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);

}












//week07_2_arras02_atan_cos_sin

void setup(){

  size(500,700);

}

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);


}













//week07_3_arras03_atan_angle_rotate_translate_myTank

void setup(){

  size(500,700);

}

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);

}











//week07_4_arras04_background_for_line_line_void_keyPressed_keyCode

void setup(){

  size(500,700);

}

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(219);

  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);

  }

  //background(215,184,200);

  //stroke(211,180,196);

  stroke(214);

  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);

}











//week07_5_arras05_correct_move_translate_mx_my

void setup(){

  size(500,700);

}

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(219);

  translate(-x, -y);

  translate(width/2, height/2);

  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);

  }

  //background(215,184,200);

  //stroke(211,180,196);

  stroke(214);

  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);

}












//week07_6_arras06_vx_vy_void_keyPressed_void_draw

void setup(){

  size(500,400);

}

void keyPressed(){

  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(219);

  translate(-x, -y);

  translate(width/2, height/2);

  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);

  }

  //background(215,184,200);

  //stroke(211,180,196);

  stroke(214);

  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);

}













//week07_7_arras07_angle_bulletX_bulletY_bulletVX_bulletVY

void setup(){

  size(500,400);

}

void keyPressed(){

  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(219);

  translate(-x, -y);

  translate(width/2, height/2);

  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);

  }

  //background(215,184,200);

  //stroke(211,180,196);

  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;

float bulletX = 0, bulletY = 0, bulletVX = 0, 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);

}












//week07_8_arras08_array_many_bullets

void setup(){

  size(500,400);

}

void keyPressed(){

  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(219);

  translate(-x, -y);

  translate(width/2, height/2);

  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);

  }

  //background(215,184,200);

  //stroke(211,180,196);

  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);

}












//week07_9_arras09_recycle_bullet_move_right_to_left

void setup(){

  size(500,400);

}

void keyPressed(){

  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(219);

  translate(-x, -y);

  translate(width/2, height/2);

  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);

  }

  //background(215,184,200);

  //stroke(211,180,196);

  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);

}












//week07_10_arras10_bulletT_for_timeout

void setup(){

  size(500,400);

}

void keyPressed(){

  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(219);

  translate(-x, -y);

  translate(width/2, height/2);

  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);

  }

  //background(215,184,200);

  //stroke(211,180,196);

  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; k<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;

  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);

}





沒有留言:

張貼留言