2024年10月28日 星期一

BK Week08 RPG

 Processing 程式碼

執行後跑出第一頁 mousePressed 後 跳到下一頁
PImage img;
void setup() {
  size(640, 480);
  img = loadImage("640x480.png");
}
int page = 0; // 0:開場畫面 1:第1關 2:第2關
void draw() {
  if (page==0) {
    background(0);
    textSize(70);
    textAlign(CENTER, CENTER);
    text("Opening", 320, 240);
  } else if (page==1) {
    background(img); //小心, 圖檔大小, 要與size()相同, 才能變背景
  }
}
void mousePressed() {
  if (page==0) page = 1;
}


在圖片上加上很多小格子 用來下一個步驟當基準用
PImage img;
void setup() {
  size(640, 480); //15格=480, 480/15=32 小圖
  img = loadImage("640x480.png");
}
void draw() {
  background(img);
  for (int i=0; i<15; i++) { //高度 480 對應 y 座標 左手i
    for (int j=0; j<20; j++) { //寬度 640 對應 x 座標 右手j
      noFill();
      rect(j*32, i*32, 32, 32); //小格子的大小事 32x32
    }
  }
}


加上 mouseMoved() 讓滑鼠游標經過畫面中的黑色格子時 會變成紅色
再加上 mousePressed() 裡面加上 copy save 
可以把點到的那格的圖片存檔到 project的資料夾
PImage img;
void setup() {
  size(640, 480); //15格=480, 480/15=32 小圖
  img = loadImage("640x480.png");
}
void draw() {
  background(img);
  for (int i=0; i<15; i++) { //高度 480 對應 y 座標 左手i
    for (int j=0; j<20; j++) { //寬度 640 對應 x 座標 右手j
      noFill();
      stroke(0);
      rect(j*32, i*32, 32, 32); //小格子的大小事 32x32
    }
  }
  stroke(255, 0, 0);
  rect(J*32, I*32, 32, 32);
}
int I = -1, J = -1;
void mouseMoved() {// voidMoved() 移動時, 要修改 I,J
  I = mouseY/32; //小心 Y
  J = mouseX/32; //小心 X
}
int N = 1; //圖檔的編號
void mousePressed() {
  //PImage now = create(640, 480, RGB);
  //now.copy(img, 0, 0, 640, 480, 0, 0, 640, 480);
  PImage now = createImage(32, 32, RGB);
  now.copy(img, J*32, I*32, 32, 32, 0, 0, 32, 32);
  now.save(N + ".png");
  N++;
}

用 array[] 把上一個檔案儲存的圖片 按照檔名的數字一個一個key上去
int [][] floor = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
};
PImage img;
PImage [] fimg = new PImage[40];
void setup() {
  size(640, 480); //15格=480, 480/15=32 小圖
  img = loadImage("640x480.png");
  for (int i=1; i<=20; i++) fimg[i] = loadImage(i+".png");
}
void draw() {
  // background(img);
  for (int i=0; i<floor.length; i++) { //高度 480 對應 y 座標 左手i
    for (int j=0; j<20; j++) { //寬度 640 對應 x 座標 右手j
      int now = floor[i][j];
      image(fimg[now], j*32, i*32);
    }
  }
}

加入 勇者 加上 keyPressed() 讓勇者動起來
int [][] floor = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 19, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
};
PImage img, user;
PImage [] fimg = new PImage[40];
void setup() {
  size(640, 480); //15格=480, 480/15=32 小圖
  img = loadImage("640x480.png");
  user = loadImage("18.png"); //勇者 使用者
  for (int i=1; i<=20; i++) fimg[i] = loadImage(i+".png");
}
int userI = 12, userJ = 15;
void draw() {
  // background(img);
  for (int i=0; i<floor.length; i++) { //高度 480 對應 y 座標 左手i
    for (int j=0; j<20; j++) { //寬度 640 對應 x 座標 右手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++; 
}


利用偵測下一個陣列的數字 讓勇者碰到牆壁會被擋住不能過
int [][] floor = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 19, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
};
PImage img, user;
PImage [] fimg = new PImage[40];
void setup() {
  size(640, 480); //15格=480, 480/15=32 小圖
  img = loadImage("640x480.png");
  user = loadImage("18.png"); //勇者 使用者
  for (int i=1; i<=20; i++) fimg[i] = loadImage(i+".png");
}
int userI = 12, userJ = 15;
void draw() {
  // background(img);
  for (int i=0; i<floor.length; i++) { //高度 480 對應 y 座標 左手i
    for (int j=0; j<20; j++) { //寬度 640 對應 x 座標 右手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]!=3){
     userI = newI;
     userJ = newJ;
  }
}


讓用者吃寶石 碰到樓梯 跑出綠色畫面 遊戲結束
int [][] floor = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 19, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
};
PImage img, user;
PImage [] fimg = new PImage[40];
void setup() {
  size(640, 480); //15格=480, 480/15=32 小圖
  img = loadImage("640x480.png");
  user = loadImage("18.png"); //勇者 使用者
  for (int i=1; i<=20; i++) fimg[i] = loadImage(i+".png");
}
int userI = 12, userJ = 15;
void draw() {
  // background(img);
  for (int i=0; i<floor.length; i++) { //高度 480 對應 y 座標 左手i
    for (int j=0; j<20; j++) { //寬度 640 對應 x 座標 右手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);
}
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]!=3) { //不是木頭才能過
    userI = newI;
    userJ = newJ;
    if (floor[userI][userJ]==20) gameOver = true;
    floor[userI][userJ] = 6;
  }
}


加上左邊一排文字
int [][] floor = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 19, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
};
PImage img, user;
PImage [] fimg = new PImage[40];
void setup() {
  size(640, 480); //15格=480, 480/15=32 小圖
  img = loadImage("640x480.png");
  user = loadImage("18.png"); //勇者 使用者
  for (int i=1; i<=20; i++) fimg[i] = loadImage(i+".png");
}
int userI = 12, userJ = 15;
void draw() {
  // background(img);
  for (int i=0; i<floor.length; i++) { //高度 480 對應 y 座標 左手i
    for (int j=0; j<20; j++) { //寬度 640 對應 x 座標 右手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("Live:  " + live, 16, 140);
  text("Attack:  " + attack, 16, 170);
  text("Defense:  " + defense, 16, 200);
  text("Magic:  " + magic, 16, 230);
  text("Exp:  " + exp, 16, 260);
  text("Coins:  " + coin, 16, 290);
  image(user, userJ*32, userI*32);
  if (gameOver) background(0, 255, 0);
}
int level = 1, live = 2693, attack = 14, defense = 16, magic = 10, exp = 72, coin = 72;
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]!=3) { //不是木頭才能過
    userI = newI;
    userJ = newJ;
    if (floor[userI][userJ]==20) gameOver = true;
    floor[userI][userJ] = 6;
  }
}

左邊一排文字的數值會跳
int [][] floor = {
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 19, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1}, //有20個數字
  {1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 3, 4, 5, 1, 1, 1, 5, 6, 1, 1}, //有20個數字
};
PImage img, user;
PImage [] fimg = new PImage[40];
void setup() {
  size(640, 480); //15格=480, 480/15=32 小圖
  img = loadImage("640x480.png");
  user = loadImage("18.png"); //勇者 使用者
  for (int i=1; i<=20; i++) fimg[i] = loadImage(i+".png");
}
int userI = 12, userJ = 15;
void draw() {
  // background(img);
  for (int i=0; i<floor.length; i++) { //高度 480 對應 y 座標 左手i
    for (int j=0; j<20; j++) { //寬度 640 對應 x 座標 右手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("Coins:  " + 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 = 10, 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]==5) { //遇到魔法師
    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]!=3) { //不是木頭才能過
      userI = newI;
      userJ = newJ;
      if (floor[userI][userJ]==20) gameOver = 1;
      floor[userI][userJ] = 6;
    }
  }

沒有留言:

張貼留言