2017-05-31 1 views
0

Je suis nouveau à Processing, et je fais un jeu où un sprite se déplace d'avant en arrière, et quand il entre en collision avec le mur (xvalue = 10), il va perdre une vie. J'ai 3 coeurs dans le coin supérieur et quand le sprite entre en collision avec le mur, je veux qu'il enlève un coeur afin qu'il montre seulement combien de vies il vous reste. Comment est-ce que je pourrais enlever une image (le coeur)?Traitement - comment supprimer une image après une collision?

Voici quelques code:

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; 
    } 
    } 

    } 

J'ai essayé quelques petites choses à faire l'image cardiaque disparaître - ce qui ne fonctionne pas. J'ai essayé de faire une boucle for qui mettrait toutes les coordonnées à 0, j'ai essayé de retirer la première image d'un tableau que j'ai fait tout en haut du programme, et j'ai essayé de l'effacer - tout cela n'a pas fonctionné. Toute entrée serait grandement appréciée quant à la façon dont je peux retirer un cœur lorsque le sprite entre en collision avec le mur (x = 10). Merci!

Répondre

1

Il y a plusieurs façons de le faire. Besoin de voir plus de code.

Mais en général tout ce que vous voulez dessiner dans traitement va en tirage au sort() méthode qui fonctionne indéfiniment. Au début de la méthode c'est une bonne pratique pour effacer la toile puis vous dessinez tout simplement. Vous pouvez simplement choisir de ne pas attirer le cœur.

Voici un exemple très simple. Cette application dessine une image sur l'écran. Après avoir appuyé sur une touche, l'image n'est plus dessinée.

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; 
}