2017年11月9日 星期四

羅浩倫的學習筆記 Week09

本週學習重點


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



上課紀錄
到moodle上課軟體下載Processing 3 執行範例程式碼

接下來練習用Processing這個程式語言來讀圖檔
找一張自己喜歡的圖片,把它拉到Processing 3的視窗裡面新增程式的data
接下來只需要三行的程式碼
PImage img = loadImage("doraemon.png");
size(600,600);
image(img, 0,0, 600,600);
就可以成功讀出圖檔囉

接下來進階一點把程式碼包在函式裡面,然後讓電腦跟著滑鼠座標畫圖
就可以做出可以互動的程式了



最後練習一個的Mario的Processing 3程式
PImage imgMario, imgMarioJump, imgBrick;
double marioX=200, marioY=100;
double marioVX=0, marioVY=0;
boolean marioOnFloor = false;
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,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},
               {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};

void setup(){
  size(800,600);
  imgMario = loadImage("mario.jpg");
  imgMarioJump = loadImage("mariojump.png");
  imgBrick = loadImage("brick.png");
}
void draw(){
  background(255);
  if (map[(int)(marioY/50)][(int)(marioX/50)] != 0){
    marioOnFloor = true;
  }
  if (marioOnFloor == false){
    marioVY += 0.98;
  }
  else if (marioOnFloor == true){
    marioVY = 0;
  }  
  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);
    }
  }
  
  marioX += marioVX;
  marioY += marioVY;
  image(imgBrick, marioX, marioY, 50, 50);
  //image(imgMario, marioX, marioY, 100,100);
}

void keyPressed(){
  if (keyCode == UP)
      marioVY = -15;
  if (keyCode == LEFT)
      marioVX = -5;
  if (keyCode == RIGHT)
      marioVX = 5;
}
void keyReleased(){
  if (keyCode == LEFT || keyCode == RIGHT)
      marioVX = 0;
}

沒有留言:

張貼留言