本週學習重點
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;
}