PImage img, imgb;
int state = 0;
int holeCount = 6; // 黑洞數量
float[] holeX = new float[holeCount]; // 黑洞的X位置
float[] holeY = new float[holeCount]; // 黑洞的Y位置
float moleX, moleY; // 地鼠圖片位置
boolean moleClicked = false; // 判斷地鼠是否被點擊
int score = 0; // 分數
int timeLeft = 30; // 初始時間為30秒
int lastTime = 0;
void setup() {
size(1200, 800);
// 黑洞位置的設置
holeX[0] = width / 5;
holeY[0] = height / 2.5;
holeX[1] = width / 2;
holeY[1] = height / 2.5;
holeX[2] = width / 1.25;
holeY[2] = height / 2.5;
holeX[3] = width / 5;
holeY[3] = height / 1.25;
holeX[4] = width / 2;
holeY[4] = height / 1.25;
holeX[5] = width / 1.25;
holeY[5] = height / 1.25;
resetMolePosition(); // 初始化地鼠位置
}
void draw() {
if (state == 0) {
drawStartScreen();
} else if (state == 1) {
frameRate(5);
drawCircles();
if (!moleClicked) {
img = loadImage("gopher.png");
image(img, moleX - 75, moleY - 120, 150, 150); // 地鼠圖片位置
}
displayScore();
displayTimer();
if (millis() - lastTime > 1000) {
lastTime = millis();
timeLeft--;
if (timeLeft <= 0) {
state = 0; // 時間到,遊戲結束
// 可以在這裡處理時間到的相應操作,比如顯示遊戲結束畫面或其他操作
}
}
}
}
void drawStartScreen() {
background(255);
fill(0);
textSize(50);
textAlign(CENTER, CENTER);
text("START GAME", width / 2, height / 2);
}
void drawCircles() {
imgb = loadImage("grass.png");
image(imgb, 0, 0, width, height);
// 繪製所有黑洞
for (int i = 0; i < holeCount; i++) {
ellipse(holeX[i], holeY[i], 150, 50);
}
}
void displayScore() {
fill(0);
textSize(40);
textAlign(LEFT);
text("Score: " + score, 20, 40);
}
void displayTimer() {
fill(0);
textSize(30);
textAlign(RIGHT);
text("Time: " + timeLeft, width - 20, 40);
}
void resetMolePosition() {
int randomIndex = int(random(holeCount)); // 隨機選擇一個黑洞位置
moleX = holeX[randomIndex];
moleY = holeY[randomIndex];
moleClicked = false;
timeLeft = 30; // 重置時間為30秒
}
void mousePressed() {
if (state == 0 && mouseX > width / 2 - 100 && mouseX < width / 2 + 100 && mouseY > height / 2 - 25 && mouseY < height / 2 + 25) {
state = 1;
} else if (state == 1 && !moleClicked) {
for (int i = 0; i < holeCount; i++) {
if (dist(mouseX, mouseY, holeX[i], holeY[i]) < 75 && dist(mouseX, mouseY, moleX, moleY) < 75) {
// 判斷是否點擊到地鼠且地鼠未被點擊
moleClicked = true;
score++;
resetMolePosition(); // 重新設置地鼠位置
break;
}
}
}
}遊玩畫面
沒有留言:
張貼留言