有同學要做畫面切換的程式
記得格式要是640*480
//week08_1_int_page_if_page_0_1 PImage img; void setup(){ size(640,480); img = loadImage("640x480.png"); } int page = 0; void draw(){ if(page==0){ background(0); textSize(70); textAlign(CENTER,CENTER); text("Opening", 320, 240); }else if(page==1){ background(img); } } void mousePressed(){ if(page==0) page = 1; }
再來加入網格
//week08_02_RPG_background_640_480_rect_32_32 PImage img; void setup(){ size(640,480); img = loadImage("640x480.png"); } void draw(){ background(img); for(int i= 0; i<15; i++){ for(int j=0; j<20; j++){ noFill(); rect(j*32, i*32, 32, 32); } } }
截圖功能截圖後會以1.png在資料夾中
//week08_03_RPG_PImage_copy PImage img; void setup(){ size(640,480); img = loadImage("640x480.png"); } void draw(){ background(img); for(int i= 0; i<15; i++){ for(int j=0; j<20; j++){ noFill(); stroke(0); rect(j*32, i*32, 32, 32); } } stroke(255, 0, 0); rect(J*32, I*32, 32, 32); } int I = -1, J = -1; void mouseMoved(){ I = mouseY/32; J = mouseX/32; } void mousePressed(){ PImage now = createImage(32, 32, RGB); now.copy(img, J*32, I*32, 32, 32, 0, 0, 32, 32); now.save("1.png"); }
把剛剛的截圖依照矩陣放上//week08_04_RPG_2d_array_floor_map int [][] floor = { {4, 1, 1, 1, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 3,22, 3, 22, 9, 2, 2, 2, 9, 2, 16, 5}, }; PImage img; PImage [] fimg = new PImage[40]; void setup(){ size(640,480); img = loadImage("640x480.png"); for(int i=1; i<=22; i++) fimg[i] = loadImage(i+".png"); } void draw(){ //background(img); for(int i= 0; i<3; i++){ for(int j=0; j<20; j++){ int now = floor[i][j]; image(fimg[now], j*32, i*32); } } }
加入keyCode讓他能上下左右移動//week08_04_RPG_2d_array_floor_map int [][] floor = { {4, 1, 1, 1, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 21, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5}, {4, 1, 1, 1, 5, 4, 1,20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, }; PImage img, user; PImage [] fimg = new PImage[40]; void setup(){ size(640,480); img = loadImage("640x480.png"); user = loadImage("15.png"); for(int i=1; i<=22; i++) fimg[i] = loadImage(i+".png"); } int userI = 12, userJ = 15; void draw(){ //background(img); for(int i= 0; i<floor.length; i++){ for(int j=0; j<20; j++){ int now = floor[i][j]; image(fimg[now], j*32, i*32); } } image(user, userJ*32, userI*32); } void keyPressed(){ if(keyCode==RIGHT) userJ++; if(keyCode==LEFT) userJ--; if(keyCode==UP) userI--; if(keyCode==DOWN) userI++; }
加入碰牆會停下來//week08_05_RPG_user_move_userJ_userI_keyPressed int [][] floor = { {4, 1, 1, 1, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 11, 2, 2, 2, 2, 21,1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 12, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 13, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 14, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 17, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 18, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1,20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, }; PImage img, user; PImage [] fimg = new PImage[40]; void setup(){ size(640,480); img = loadImage("640x480.png"); user = loadImage("15.png"); for(int i=1; i<=22; i++) fimg[i] = loadImage(i+".png"); } int userI = 12, userJ = 15; void draw(){ //background(img); for(int i= 0; i<floor.length; i++){ for(int j=0; j<20; j++){ int now = floor[i][j]; image(fimg[now], j*32, i*32); } } image(user, userJ*32, userI*32); } void keyPressed(){ int newI = userI, newJ = userJ; if(keyCode==RIGHT) newJ++; if(keyCode==LEFT) newJ--; if(keyCode==UP) newI--; if(keyCode==DOWN) newI++; if(floor[newI][newJ]!=1 && floor[newI][newJ]!=3){ userI = newI; userJ = newJ; } }
加入顯示,及碰到怪物會受傷
//week08_08_RPG_show_live int [][] floor = { {4, 1, 1, 1, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 11, 2, 2, 2, 2, 21, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 12, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 13, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 14, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 17, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 18, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5}, {4, 1, 1, 1, 5, 4, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5}, }; PImage img, user; PImage [] fimg = new PImage[40]; void setup() { size(640, 480); img = loadImage("640x480.png"); user = loadImage("15.png"); for (int i=1; i<=22; i++) fimg[i] = loadImage(i+".png"); } int userI = 12, userJ = 15; void draw() { //background(img); for (int i= 0; i<floor.length; i++) { for (int j=0; j<20; j++) { int now = floor[i][j]; image(fimg[now], j*32, i*32); } } image(user, 16, 16); textSize(30); text("Level: "+ level, 16, 90); textSize(20); text("hp: "+ hp, 16, 140); text("Attack: "+ attack, 16, 170); text("Defense: "+ defense, 16, 200); text("Magic: "+ magic, 16, 230); text("EXP: "+ exp, 16, 260); text("Coin: "+ coin, 16, 290); image(user, userJ*32, userI*32); if (gameOver==1) background(0, 255, 0); if (gameOver==2) background(255, 0, 0); } int level = 1, hp = 2693, attack = 14, defense = 16, magic = 140, exp = 72, coin = 72; int gameOver = 0; void keyPressed() { int newI = userI, newJ = userJ; if (keyCode==RIGHT) newJ++; if (keyCode==LEFT) newJ--; if (keyCode==UP) newI--; if (keyCode==DOWN) newI++; if (floor[newI][newJ]==9) { if (hp-10<=0) gameOver = 2; else{ hp -= 10; coin += 10; exp += 1; userI = newI; userJ = newJ; floor[userI][userJ] = 2; } } else if (floor[newI][newJ]!=1 && floor[newI][newJ]!=3) { userI = newI; userJ = newJ; if (floor[userI][userJ]==21) gameOver = 1; floor[userI][userJ] = 2; } }
沒有留言:
張貼留言