2024年10月21日 星期一

Week07互動技術概論 : 他是沒了電腦圖學,但是他還有我啊

Week07


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(202, 102, 156);
  stroke(125, 84, 105);
  strokeWeight(3);
  ellipse(x, y, 55, 55);
  line(x, y, mouseX, mouseY);
}

void setup() {
  size(500, 400);
}
float x = 250, y = 200;
void draw() {
  background(215, 184, 200);
  float dx = mouseX- x, dy = mouseY - y;
  float angle = atan2(dy, dx);//atant3算出角度
  strokeWeight(20);//很粗的一條線,長度是40
  line(x, y, x+cos(angle)*50, y+ sin(angle)*40);//cos()算出X方向,sin()算出y方向


  fill(167, 167, 175);
  stroke(110, 110, 113);
  strokeWeight(4);
  rect(240, 160, 20, 20);

  fill(202, 102, 156);
  stroke(125, 84, 105);
  strokeWeight(3);
  ellipse(x, y, 55, 55);
  line(x, y, mouseX, mouseY);
  }
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);//atant3算出角度
  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(202, 102, 156);
  stroke(125, 84, 105);
  strokeWeight(3);
  ellipse(0, 0, 55, 55);
}

void setup() {
  size(500, 400);
}
float x = 250, y = 200;
void draw() {
  background(219);//灰底
  stroke(150);
  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 = mouseX- x, dy = mouseY - y;
  float a = atan2(dy, dx);//atant3算出角度
  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(202, 102, 156);
  stroke(125, 84, 105);
  strokeWeight(3);
  ellipse(0, 0, 55, 55);
}

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(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(150);   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);//atant3算出角度   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(202, 102, 156);   stroke(125, 84, 105);   strokeWeight(3);   ellipse(0, 0, 55, 55); }


void setup() {
  size(500, 400);
}
void keyPressed(){
   if(keyCode==RIGHT) vx = 1;
   if(keyCode==LEFT) vx = -1;
   if(keyCode==UP) vy = -1;
   if(keyCode==DOWN) vy = 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(150);
  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);//atant3算出角度
  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 = -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(202, 102, 156);
  stroke(125, 84, 105);
  strokeWeight(3);
  ellipse(0, 0, 55, 55);
}


void setup() {
  size(500, 400);
}
void keyPressed() {
  if (keyCode==RIGHT) vx = 1;
  if (keyCode==LEFT) vx = -1;
  if (keyCode==UP) vy = -1;
  if (keyCode==DOWN) vy = 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(150);
  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);//atant3算出角度
  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] = y;
  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(202, 102, 156);
  stroke(125, 84, 105);
  strokeWeight(3);
  ellipse(0, 0, 55, 55);
}


void setup() {
  size(500, 400);
}
void keyPressed() {
  if (keyCode==RIGHT) vx = 1;
  if (keyCode==LEFT) vx = -1;
  if (keyCode==UP) vy = -1;
  if (keyCode==DOWN) vy = 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(150);
  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);//atant3算出角度
  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[i] = bulletX[k+50];
      bulletY[i] = bulletY[k+50];
      bulletVX[i] = bulletVX[k+50];
      bulletVY[i] = 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(202, 102, 156);
  stroke(125, 84, 105);
  strokeWeight(3);
  ellipse(0, 0, 55, 55);
}

void setup() {
  size(500, 400);
}
void keyPressed() {
  if (keyCode==RIGHT) vx = 1;
  if (keyCode==LEFT) vx = -1;
  if (keyCode==UP) vy = -1;
  if (keyCode==DOWN) vy = 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(150);
  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);//atant3算出角度
  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);
  bulletN ++;
  if(bulletN==100){
   for(int k=0; k<50; k++){
      bulletX[i] = bulletX[k+50];
      bulletY[i] = bulletY[k+50];
      bulletVX[i] = bulletVX[k+50];
      bulletVY[i] = 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(202, 102, 156);
  stroke(125, 84, 105);
  strokeWeight(3);
  ellipse(0, 0, 55, 55);
}



沒有留言:

張貼留言