Bump mapping (讓圖形有凹凸面)
1. 範例看看(https://www.openprocessing.org/sketch/249457)
2. moodle 內下載 processing 3 安裝
3.把範例copy paste到processing

4. 自己畫出一個四邊形

5. 如何call圖 (記得要把圖拉進去processing 才能讀圖檔)

6. 如何利用滑鼠決定要在哪裡畫圖

7. 做個簡單mario
/// processing code
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,1,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0},
{0,0,1,0,0,0,0,0,0,0,0,0,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,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 img;
PImage brick;
void setup(){
size(800,800);
img=loadImage("mario.png");
brick=loadImage("Brick.png");
}
float marioX=200,marioY=50,marioVY=0,marioVX=0;
boolean marioOnFloor=false;
void draw(){
background(255); //redraw background
for(int i=0;i<16;i++){
for(int j=0;j<16;j++)
{
if(map[j][i]==1)image(brick,i*50,j*50,50,50);}}
image(img,marioX,marioY,100,100);
marioY+=marioVY;
marioX+=marioVX;
marioVY+=0.98;
if(marioY>=750-100) {marioY=750-100;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;
}