2017年11月9日 星期四

柴宇恆 week09

Bump mapping  就是凹凹凸凸的貼圖
範例程式如下:

解壓所process.zip檔



自製圖檔程式碼 只要三行就能開啟一個圖檔
PImage img=loadImage("fun.png");  (製作一個圖檔)
size(600,600);  (視窗大小)
image(img,0,0,600,600); (開啟圖檔 前兩碼數字代表開始位置,後兩碼指大小)


如果把 image的位置做改成 mouseX mouseY 可以使物體跟著滑鼠跑


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,1,1,1,1,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,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;
void setup(){
  size(800,600);
  imgMario=loadImage("mario.png");
  imgBrick=loadImage("brick.png");
}
float marioX=200,marioY=100,marioVY=0,marioVX=0;
boolean marioOnFloor=false;
void draw(){
  background(255);
  for(int x=0;x<16;x++){
    for(int y=0;y<11;y++){
      if(map[y][x]==1) image(imgBrick,x*50,y*50,50,50);
    }
  }
  image(imgMario,marioX,marioY,100,100);
  marioY+=marioVY; marioX+=marioVX;
  marioVY +=0.98;
  if(marioY>=500-80) {marioY=500-80;marioVY=0;marioOnFloor=true;}
}
void keyPressed(){
  if(keyCode==UP && marioOnFloor){marioVY=-15;marioOnFloor=false;}
  if(keyCode==RIGHT) marioVX=5;
  if(keyCode==LEFT) marioVX=-5;
}
void keyReleased(){
  if(keyCode==RIGHT || keyCode==LEFT) marioVX=0;
}

沒有留言:

張貼留言