我是Processing的新手,我正在制作一个精灵来回移动的游戏,当它与墙碰撞时(xvalue = 10)它会失去生命。我在顶角有3颗心,当精灵与墙碰撞时,我希望它能移除一颗心,这样它只会显示你剩下多少生命。我如何删除图像(心脏)?
以下是一些代码:
void loadStuff() {
image(panda, pandaX, pandaY, 80, 112);
image(heart1, 1250, 20, 100, 100);
image(heart2, 1350, 20, 100, 100);
image(heart3, 1450, 20, 100, 100);
if (pandaX<=10) {
//heart1=null;
//for (int l=0; l<=life; l++) {
// xCoord = xCoord - 100;
// yCoord = yCoord - 100;
// image(heart1, 0,0,0,0);
//}
}
}
void keyPressed() {
if (key==CODED) {
if (keyCode==LEFT) {
pandaX = pandaX-20;
}
if (keyCode==RIGHT) {
pandaX = pandaX+20;
}
if (pandaX<=10) {
pandaX=10;
//lives.remove(0);
//image(heart1,1500, 500); //makes another heart
//heart1.clear();
//heart1 = null;
}
if (pandaX>=1500) {
pandaX=1500;
}
}
}
我尝试了一些让心脏图像消失的东西 - 这没用。我尝试制作一个for循环,它将所有坐标设置为0,我尝试从我在程序最顶层制作的数组中删除第一个图像,我尝试清除它 - 所有这些都不起作用。
当精灵碰撞到墙壁(x = 10)时,我将非常感谢如何移除心脏。谢谢!
答案 0 :(得分:1)
有很多方法可以做到这一点。需要查看更多代码。
但总的来说,您想要在处理中绘制的所有内容都会进入无限期运行的 draw()方法。在方法的开头,清除画布是一个很好的做法,然后你只需绘制一切。你可以选择不画心。
这是一个非常简单的例子。此应用程序在屏幕上绘制图像。按任意键后,不再绘制图像。
PImage img;
boolean canDraw = true;
void setup() { // setup() runs once
size(800, 600);
frameRate(30);
loadStuff();
}
void loadStuff() {
img = loadImage("myImage.png");
}
void draw() {
background(204); // clears the screen
if(canDraw) {
image(img, 0, 0);
}
}
void keyPressed() {
canDraw = false;
}