J'ai un programme où l'utilisateur voyage dans une grille et doit tuer un ennemi. Quand ils le font, un message indique que l'utilisateur a entendu un cri.Comment dessinerString() une seule fois
Ce message n'est supposé être affiché qu'une fois lorsque l'utilisateur tire son arme. J'ai fait l'affichage du message si la méthode suivante était vrai:
public boolean deadWumpus()
{
for(int x=0;x<10;x++)
{
for(int y=0;y<10;y++)
{
if(map.grid[x][y].getDeadWumpus()==true)
return true;
}
}
return false;
}
J'ai alors une ligne dans ma méthode de peinture() qui stipule que si cette méthode est vrai afficher le message. Cependant, cela continue à afficher car il n'y a pas de régulateur pour lui dire de ne fonctionner qu'une seule fois lorsque l'utilisateur se déclenche. Je tenté de créer un int pour assurer il fonctionne qu'une seule fois:
// at beginning of program
int once=0;
//in paint()
if(once==0){
if(deadWumpus()==true)
{
g.drawString("You hear a scream.",300,675);
}
}
once++;
En utilisant cette affiche jamais le message. Y a-t-il une manière que je peux obtenir le message pour afficher seulement une fois quand l'utilisateur tire et puis disparaissent une fois que l'utilisateur fait leur prochain mouvement? Merci.
Avez-vous essayé d'avoir un booléen signalant l'exécution? – Vale
Je ne peux pas parler pour les autres, mais j'aimerais bien voir [mcve] avant de dire ce qui ne va pas. S'il vous plaît regardez le lien. –
@Vale Ouais j'ai essayé la signalisation booléenne aussi, même résultat – AeroFighter76