2019年12月26日 星期四

Week16 06161215

boolean boxDeath=false;
PVector user;
PVector userv;
int[] value=new int[100];
PVector[] bullet =new PVector[100];
PVector[] bulletV =new PVector[100];
PImage imguser;
PImage imgwin;
void setup() {
  size(500, 500);
  imguser=loadImage("Mark.png");
  imgwin=loadImage("Win.png");
  user = new PVector(0, 475);
  userv = new PVector(0, 0);
  for (int i=0; i<30; i++) {
    bullet[i]=new PVector( random(500), random(500)); ///讓他隨便跑
    bulletV[i]=new PVector( random(4)-2, random(4)-2);
  }
}
void draw() {
  background(255);
  //if(boxDeath) fill(0);
  fill(0);
  image(imguser, user.x, user.y, 30, 30);

  user.add(userv);
  if (user.x>500-25) user.x=475;
  if (user.y>500-25) user.y=475;
  if (user.x<0) user.x=0;
  if (user.y<0) user.y=0;

  for (int i=0; i<30; i++) {
    fill(128);
    if ( testInside( bullet[i].x, bullet[i].y ) ) {
      //fill(255,0,0);
      //background(0);
      //boxDeath=true;
    } else fill(255);
    bullet[i].add(bulletV[i]);
    ellipse(bullet[i].x, bullet[i].y, 5, 5);
    if (bullet[i].x<0) {           ///碰到邊界會彈回來
      bullet[i].x=0;
      bulletV[i].x=random(2);
    }
    if (bullet[i].x>500) {
      bullet[i].x=500;
      bulletV[i].x=-random(2);
    }
    if (bullet[i].y<0) {
      bullet[i].y=0;
      bulletV[i].y=random(2);
    }
    if (bullet[i].y>500) {
      bullet[i].y=500;
      bulletV[i].y=-random(2);
    }
  }

  fill(255, 0, 0);
}
void keyPressed() {
  if (keyCode==RIGHT) userv.x=2;
  if (keyCode==LEFT) userv.x=-2;
  if (keyCode==UP) userv.y=-2;
  if (keyCode==DOWN) userv.y=2;
}
void keyReleased() {
  if (keyCode==RIGHT) userv.x=0;
  if (keyCode==LEFT) userv.x=-0;
  if (keyCode==UP) userv.y=-0;
  if (keyCode==DOWN) userv.y=0;
}
boolean testInside(float x, float y) {
  if (user.x<x && x<user.x+50 && user.y<y && y<user.y+50) return true;
  else return false;
}

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...