2024年10月28日 星期一

周家契約8號

 有同學要做畫面切換的程式

記得格式要是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;
  }
}


沒有留言:

張貼留言