2017年11月9日 星期四

肯尼斯的學習筆記 Week 9

Bump Mapping

*先在moodle下載Processing 3軟體

體驗一位網友寫的程式碼:
https://www.openprocessing.org/sketch/249457

將它程式複製到Processing中




用Processing寫簡單的程式

程式碼:
PImage img=loadImage("doraemon.jpeg");
size(600, 600);
image(img, 0,0, 600,600);

*要先把doramon.jpeg圖檔拖曳至程式中


寫進一步的程式

程式碼:
PImage img;
void setup(){
  size(1280, 800);
  img=loadImage("error.jpg");
}

void draw(){
  //rect(mouseX, mouseY, 50, 50);  <- 用來畫正方形的碼
  image(img, mouseX,mouseY, 400,250);
}



寫出簡易超級瑪莉歐

程式碼:
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(imgMario, marioX, marioY, 50,50);
  marioY += marioVY; marioX += marioVX;
  marioVY += 0.98;
  if(marioY>=500-50)
  {marioY=500-50; 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;
}


沒有留言:

張貼留言