2017年11月9日 星期四

7Hao-計算機圖學-Week09

(1)上週Texture貼圖詳解
(2)多重貼圖
(3)Bump Mapping

體驗:https://www.openprocessing.org/sketch/249457

到moodle下載processing-3.3.6-windows64.zip
解壓縮後執行, 再把上面網站的程式碼貼上並執行


畫四邊形
工具->顏色選擇器->用fill()填充顏色


讀圖檔 把圖檔直接拉進去


滑鼠移動畫圖形


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,1,1,2,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,0,0,0,0,0,0,0,0,0},
             {1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
PImage imgMario,imgBrick,imgBrick2;
void setup(){
size(800,600);
imgMario=loadImage("mario.png");
imgBrick=loadImage("brick.png");
imgBrick2=loadImage("brick2.png");
}
float marioX=200, marioY=100,marioVX=0,marioVY=0;
boolean marioOnFloor=false;
void draw(){
 background(255);
 for(int x=0;x<14;x++){
   for(int y=0;y<11;y++){
     if(map[y][x]==1)image(imgBrick,x*50,y*50,50,50);
     if(map[y][x]==2)image(imgBrick2,x*50,y*50,50,50);
   }
   image(imgBrick,x*50,500,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;
}

結果:

沒有留言:

張貼留言