我正在制作一个飞扬的鸟类游戏,并且在我的代码中,如果鸟类与管道发生碰撞,我就会这样做,如果确实如此,它会显示游戏画面。它正确显示屏幕,但它仍然显示管道和鸟在游戏画面的顶部,我尝试使用boolean showimage = false
并且似乎没有用,任何指导都将受到赞赏。
我还没有添加它,所以当用户死亡时游戏停止并且我认为这可能是一个原因?
编辑:看来Ii不是很清楚,所以我道歉。我问如何只在鸟与管道碰撞时显示游戏画面(isCollide
)但是,它目前显示游戏画面上方的管道和鸟类,我问如何隐藏鸟和管道只显示游戏画面。
这是我的游戏代码与我的问题相关,完整的代码可以在以前的编辑中找到
import processing.serial.*;
PImage gameover;
PImage bg; //Declaring variables for images
PImage img;
PImage imgPipe;
Serial myPort;
void isCollide(Pipe myP) {
if ((x + size > myP.pipeX) && (x < myP.pipeX + myP.pipeWidth) && (y <
myP.upperBound)) {
image(gameover, 0, 0);
}
if ((x + size > myP.pipeX) && (x < myP.pipeX + myP.pipeWidth) && (y + size >
myP.lowerBound)) {
image(gameover, 0, 0);
}
}
void display() {
pushMatrix();
translate(x, y);
fill(255);
image(img, 0, 0, size, size);
popMatrix();
}
void display() {
stroke(0);
fill(120, 90, 55);
image(imgPipe, pipeX, upperBound - imgPipe.height); //Upper pipe image
image(imgPipe, pipeX, lowerBound); //Lower Pipe image
}
void setup() {
myPort = new Serial(this, Serial.list()[3], 9600); //Port the Arduino is
plugged into
size(300, 500);
bg = loadImage("background2.jpg"); //Loading images
img = loadImage("bird.png");
imgPipe = loadImage("wall2.png");
myBird = new Bird();
myPipe.renew();
gameover = loadImage("gameover.png");
}
void draw() {
background(bg); //Drawing background
myPipe.update();
myBird.control();
myBird.isCollide(myPipe);
myBird.display();
myPipe.display();
}