2023年12月28日 星期四

真 week14

 int x = 500;

int y = 500;  // 手部初始坐標
float apple_x = 150;
float apple_y = 300;  // 蘋果初始坐標
float bomb_x = 500;
float bomb_y = 300;  // 炸彈初始坐標
float banana_x = 250;
float banana_y = 300;
int a = 0;  // 初始分數
int b;
int c = 600;
PImage tree;
PImage apple;
PImage hand;
PImage bomb;
PImage banana;
int gameState = 0;

void setup() {
  size(640, 696);
  tree = loadImage("tree.jpg");
  apple = loadImage("apple.png");
  banana = loadImage("banana.png");
  hand = loadImage("hand.png");
  bomb = loadImage("bomb.png");
  // 設置遊戲初始狀態
  gameState = 0;
}

void draw() {
  frameRate(20);
  background(tree);

  if (gameState == 0) {
    drawStartScreen();
  } else if (gameState == 1) {
    // 遊戲進行中的畫面
    move();
    image(hand, x, y);
    image(apple, apple_x, apple_y);
    image(banana, banana_x, banana_y);
    image(bomb, bomb_x, bomb_y);
    hand.resize(100, 100);
    apple.resize(200, 164);
    bomb.resize(100, 100);
    banana.resize(100, 100);
    over();
    font();
    if (sqrt((apple_x - x)*(apple_x - x) + (apple_y - y)*(apple_y - y)) < 25) {
      apple();
      bomb();
      banana();
      a += 10;
    }
    if (sqrt((banana_x - x)*(banana_x - x) + (banana_y - y)*(banana_y - y)) < 25) {
      apple();
      bomb();
      banana();
      a += 20;
    }
    if (sqrt((bomb_x - x)*(bomb_x - x) + (bomb_y - y)*(bomb_y - y)) < 25) {
      apple();
      bomb();
      banana();
      a -= 20;
    }
  }
}

void drawStartScreen() {
  fill(0);
  textSize(30);
  textAlign(CENTER, CENTER);
  text("Fruit Catcher", width/2, height/2 - 20);

  rectMode(CENTER);
  rect(width/2, height/2 + 20, 150, 50);

  fill(255);
  textSize(20);
  text("Start Game", width/2, height/2 + 20);
}

void mousePressed() {
  if (gameState == 0 && mouseX > width/2 - 75 && mouseX < width/2 + 75 &&
      mouseY > height/2 + 5 && mouseY < height/2 + 35) {
    gameState = 1;  // 切換到遊戲進行中的狀態
  }
}

void move() {
  if (keyPressed) {
    if (key == 'a' && x != 0) {
      x -= 10;
    }
    if (key == 'd' && x != 600) {
      x += 10;
    }
    if (key == 'w' && y != 0) {
      y -= 10;
    }
    if (key == 's' && y != 600) {
      y += 10;
    }
    if (key == 'q') {
      exit();
    }
  }
}

void apple() {
  apple_x = random(50, 550);
  apple_y = random(50, 400);
}

void bomb() {
  bomb_x = random(50, 550);
  bomb_y = random(50, 400);
}

void banana() {
  banana_x = random(50, 550);
  banana_y = random(50, 400);
}

void font() {
  fill(0);
  text(a, 10, 50);
  text(b, 550, 50);
}

void over() {
  c -= 1;
  b = c / 20;
  if (c == 0) {
    fill(20, 40, 240);
    noStroke();
    rect(100, 400, 450, 60);
    fill(0);
    String s = "Your score is";
    text(s, 110, 440);
    text(a, 450, 440);
    stop();
  }
}

沒有留言:

張貼留言