//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; else if(page==1)page=0; } 透過滑鼠按鍵切換頁面
//week08_2_RPG_background_32_32_rect
PImage img;
void setup(){
size(640,480);
img = loadImage("640x480.png");
}
void draw(){
background(img);
for(int i=0;i<20;i++){
for(int j=0;j<20;j++){
noFill();
rect(j*32,i*32,32,32);
}
}
}把畫面劃分成小格子
//week08_2_RPG_background_32_32_rect
PImage img;
void setup(){
size(640,480);
img = loadImage("640x480.png");
}
void draw(){
background(img);
for(int i=0;i<20;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 mousePressed(){
I = mouseY/32;
J = mouseX/32;
}選取其中一個小格子//week08_3_RPG_background_32_32_rect PImage img; void setup(){ size(640,480); img = loadImage("640x480.png"); } void draw(){ background(img); for(int i=0;i<20;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_4_RPG_2d_array_floor_map int [][] floor={ {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, {8,0,2,3,4,8,8,8,8,8,3,8,8,8,12,8,8,2,2,8 }, {8,0,6,5,4,8,5,8,8,8,8,8,2,8,12,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,15,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,15,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,6,15,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,15,8,8,2,2,8 }, {8,8,8,5,4,8,8,8,7,10,11,8,2,8,15,8,8,2,2,8 }, {8,8,8,5,4,2,3,4,7,10,11,8,2,8,15,8,8,2,2,8 }, {8,8,8,5,4,8,8,8,7,10,11,8,2,8,15,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,15,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,15,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,15,7,7,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,15,8,8,2,2,8 }, {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, }; PImage img; PImage[] fimg = new PImage[40]; void setup(){ size(640,480); img = loadImage("640x480.png"); for(int i=0;i<=18;i++)fimg[i] = loadImage(i+".png"); } void draw(){ //background(img); for(int i=0;i<15;i++){ for(int j=0;j<20;j++){ int now = floor[i][j]; image(fimg[now],j*32,i*32); } } } 建立一個自己設計的地圖//week08_5_RPG_user_move_wall int [][] floor={ {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, {8,0,2,3,4,8,8,8,8,8,3,8,8,8,12,8,8,2,6,8 }, {8,0,6,5,4,8,5,8,8,8,8,8,2,8,12,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,5,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,1,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,3,3,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,2,8,8,2,2,8 }, {8,8,8,5,4,8,8,8,7,10,11,8,2,8,4,8,8,2,2,8 }, {8,8,8,5,4,2,3,4,7,10,11,8,2,8,2,8,8,2,2,8 }, {8,8,8,5,4,8,8,8,7,10,11,8,2,8,11,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,3,2,8,11,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,17,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,13,7,7,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,14,8,8,2,2,8 }, {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, }; PImage img,user; PImage[] fimg = new PImage[40]; void setup(){ size(640,480); img = loadImage("640x480.png"); user= loadImage("15.png");//勇者 for(int i=0;i<=18;i++)fimg[i] = loadImage(i+".png"); } int userI=2,userJ=2; void draw(){ //background(img); for(int i=0;i<15;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_6_RPG_wall_detection int [][] floor={ {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, {8,0,2,3,4,8,8,8,8,8,3,8,8,8,12,8,8,2,6,8 }, {8,0,6,5,4,8,5,8,8,8,8,8,2,8,12,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,5,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,1,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,3,3,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,2,8,8,2,2,8 }, {8,8,8,5,4,8,8,8,7,10,11,8,2,8,4,8,8,2,2,8 }, {8,8,8,5,4,2,3,4,7,10,11,8,2,8,2,8,8,2,2,8 }, {8,8,8,5,4,8,8,8,7,10,11,8,2,8,11,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,3,2,8,11,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,17,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,13,7,7,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,14,8,8,2,2,8 }, {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, }; PImage img,user; PImage[] fimg = new PImage[40]; void setup(){ size(640,480); img = loadImage("640x480.png"); user= loadImage("15.png");//勇者 for(int i=0;i<=18;i++)fimg[i] = loadImage(i+".png"); } int userI=2,userJ=2; void draw(){ //background(img); for(int i=0;i<15;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]!=8 && floor[newI][newJ]!=5){ userI=newI; userJ=newJ; } } 加上了碰撞牆偵測//week08_7_RPG_eat_good int [][] floor={ {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, {8,0,2,3,4,8,8,8,8,8,3,8,8,8,12,8,8,2,18,8 }, {8,6,7,5,4,8,5,8,8,8,8,8,2,8,12,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,5,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,1,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,3,3,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,2,8,8,2,2,8 }, {8,8,8,5,4,8,8,8,7,10,11,8,2,8,4,8,8,2,2,8 }, {8,8,8,5,4,2,3,4,7,10,11,8,2,8,2,8,8,2,2,8 }, {8,8,8,5,4,8,8,8,7,10,11,8,2,8,11,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,3,2,8,11,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,17,8,8,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,13,7,7,2,2,8 }, {8,8,8,5,4,8,5,8,7,10,11,8,2,8,14,8,8,2,2,8 }, {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, }; PImage img,user; PImage[] fimg = new PImage[40]; void setup(){ size(640,480); img = loadImage("640x480.png"); user= loadImage("15.png");//勇者 for(int i=0;i<=18;i++)fimg[i] = loadImage(i+".png"); } int userI=2,userJ=2; void draw(){ //background(img); for(int i=0;i<15;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); if(gameOver){ background(0,255,0); textSize(70); textAlign(CENTER,CENTER); text("GameOver",320,240); } } boolean gameOver=false; 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]!=8 && floor[newI][newJ]!=5){ userI=newI; userJ=newJ; if(floor[userI][userJ] == 18)gameOver=true; floor[userI][userJ] = 7; } } 新增碰到樓梯結束遊戲//week08_8_RPG_info int [][] floor={ {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, {8,8,8,8,6,8,8,8,8,8,3,8,8,8,12,8,8,2,18,8 }, {8,8,8,8,4,8,5,8,8,8,8,8,2,8,12,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,5,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,1,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,3,3,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,2,8,8,2,2,8 }, {8,8,8,8,4,8,8,8,7,10,11,8,2,8,4,8,8,2,2,8 }, {8,8,8,8,4,2,3,4,7,10,11,8,2,8,2,8,8,2,2,8 }, {8,8,8,8,4,8,8,8,7,10,11,8,2,8,11,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,3,2,8,11,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,17,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,13,7,7,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,14,8,8,2,2,8 }, {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, }; PImage img,user; PImage[] fimg = new PImage[40]; void setup(){ size(640,480); img = loadImage("640x480.png"); user= loadImage("15.png");//勇者 for(int i=0;i<=18;i++)fimg[i] = loadImage(i+".png"); } int userI=2,userJ=4; void draw(){ //background(img); for(int i=0;i<15;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); image(user,16,16); textSize(30); text("Level: "+level,16,90); textSize(20); text("Health: "+health,16,140); text("Attack: "+attack,16,190); text("Defense: "+defense,16,240); text("Magic: "+magic,16,290); text("Exp: "+exp,16,340); text("Coins: "+coins,16,390); if(gameOver){ background(0,255,0); textSize(70); textAlign(CENTER,CENTER); text("GameOver",320,240); } } int level =1,health =2700,attack =14,defense=16,magic=26,exp=58,coins=8954; boolean gameOver=false; 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]!=8 && floor[newI][newJ]!=5){ userI=newI; userJ=newJ; if(floor[userI][userJ] == 18)gameOver=true; floor[userI][userJ] = 7; } } 在左邊增加屬性//week08_7_RPG_eat_good int [][] floor={ {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, {8,8,8,8,6,8,8,8,8,8,3,8,8,8,12,8,8,2,18,8 }, {8,8,8,8,4,8,5,8,8,8,8,8,2,8,12,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,5,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,1,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,3,3,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,14,8,8,2,2,8 }, {8,8,8,8,4,8,8,8,7,10,11,8,2,8,4,8,8,2,2,8 }, {8,8,8,8,4,2,3,4,7,10,11,8,2,8,2,8,8,2,2,8 }, {8,8,8,8,4,8,8,8,7,10,11,8,2,8,11,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,3,2,8,11,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,14,8,8,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,13,7,7,2,2,8 }, {8,8,8,8,4,8,5,8,7,10,11,8,2,8,14,8,8,2,2,8 }, {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 }, }; PImage img,user; PImage[] fimg = new PImage[40]; void setup(){ size(640,480); img = loadImage("640x480.png"); user= loadImage("15.png");//勇者 for(int i=0;i<=18;i++)fimg[i] = loadImage(i+".png"); } int userI=2,userJ=4; void draw(){ //background(img); for(int i=0;i<15;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); image(user,16,16); textSize(30); text("Level: "+level,16,90); textSize(20); text("HP: "+HP,16,140); text("Attack: "+attack,16,190); text("Defense: "+defense,16,240); text("Magic: "+magic,16,290); text("Exp: "+exp,16,340); text("Coins: "+coins,16,390); if(gameOver==1){ background(0,255,0); textSize(70); textAlign(CENTER,CENTER); text("GameOver",320,240); } if(gameOver==2){ background(255,0,0); textSize(70); textAlign(CENTER,CENTER); text("GameOver",320,240); } } int level =1,HP =4499,attack =14,defense=16,magic=26,exp=58,coins=8954; 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]==14){ if(HP-1500<=0)gameOver=2; else { HP -= 1500; coins+=10; exp+=1; userI=newI; userJ=newJ; floor[newI][newJ]=7; } } if(floor[newI][newJ]!=8 && floor[newI][newJ]!=5){ userI=newI; userJ=newJ; if(floor[userI][userJ] == 18)gameOver=1; floor[userI][userJ] = 7; } } 增加碰到怪物會扣血
沒有留言:
張貼留言