2017年11月9日 星期四

week09-Bump Mapping? processing

PImage img;
void setup(){
  size(1280, 768);
  img=loadImage("error.jpg");
}

void draw(){
 // rect(mouseX, mouseY, 50, 50); 畫長方形
  image(img, mouseX, mouseY); //畫img
}

Bump Mapping:用法向量和偏微分計算陰影

----------------------------

瑪莉歐小遊戲

int [][]map={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {0,0,0,1,1,1,2,1,0,0,0,0,0,0,0,0},
             {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
             {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
PImage imgMario, imgBrick, imgQuestion;
boolean marioOnFloor=false;
void setup(){
  size(800, 600);
  imgMario=loadImage("mario.png");
  imgBrick=loadImage("mariobrick.png");
  imgQuestion=loadImage("questionblock.png");
}
float marioX=100, marioY=100, marioVX=0, marioVY=0;
void draw(){
  background(255);
  //for(int x=0; x<18; x++) { image(imgBrick, x*50, 600-50, 50, 50);}
  for(int x=0; x<16; x++){
    for(int y=0; y<12; y++){
      if(map[y][x]==1) image(imgBrick, x*50, y*50, 50, 50);
      if(map[y][x]==2) image(imgQuestion, x*50, y*50, 50, 50);
    }
  }
  image(imgMario, marioX, marioY, 100, 100);
  marioY += marioVY; marioX += marioVX;
  marioVY += 0.98;
  if(marioY>=550-80){ marioY=550-80; marioVY=0; marioOnFloor=true;}
}

void keyPressed(){
  if(keyCode==UP && marioOnFloor) { marioVY=-17; marioOnFloor=false;}
  if(keyCode==RIGHT) marioVX = 5;
  if(keyCode==LEFT) marioVX = -5;
}

void keyReleased(){
  if(keyCode==RIGHT || keyCode==LEFT) marioVX=0;
}

沒有留言:

張貼留言