2024年10月28日 星期一

week08

1.week08_01_int_page_if_page_0_1  遊戲的頁面切換

// week08_01_int_page_if_page_0_1   遊戲的頁面切換
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;
}

2.week08_02_RPG_background_640_480_rect_32_32
// week08_02_RPG_background_640_480_rect_32_32
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
    for(int j=0; j<20; j++){ //寬度640
      noFill();
      rect(j*32, i*32, 32, 32); //小格子的大小是 32x32
    }
  }
}

3.week08_03_RPG_PImage_createImage_copy_save
// week08_03_RPG_PImage_createImage_copy_save  用複製過來的, 因為要剛剛的圖 640x480.png 
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
    for(int j=0; j<20; j++){ //寬度640
      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(){//void Moved移動時,要修改I, J
  I = mouseY/32;//小心Y
  J = mouseX/32;//小心X
}
void mousePressed(){
  //PImage now = createImage(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("1.png");
}















































































沒有留言:

張貼留言