Ich habe ein Programm, wo der Benutzer in einem Raster reist und einen Feind töten muss. Wenn sie dies tun, erscheint eine Nachricht, dass der Benutzer einen Schrei gehört hat.Wie zeichneString() nur einmal
Diese Nachricht soll nur einmal angezeigt werden, wenn der Benutzer seine Waffe abfeuert. Ich habe die Meldung angezeigt, wenn die folgende Methode zutraf:
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;
}
ich dann in meiner Farbe eine Linie() -Methode, die besagt, wenn diese Methode wahr ist, dann die Meldung angezeigt werden soll. Dies wird jedoch weiterhin angezeigt, da es keinen Regler gibt, der sagt, dass es nur einmal ausgeführt werden soll, wenn der Benutzer feuert. ich versucht, ein int zu schaffen, um sicherzustellen, läuft nur einmal:
// at beginning of program
int once=0;
//in paint()
if(once==0){
if(deadWumpus()==true)
{
g.drawString("You hear a scream.",300,675);
}
}
once++;
Mit dieser es nie die Meldung angezeigt wird. Gibt es eine Möglichkeit, die Nachricht nur einmal anzeigen zu lassen, wenn der Benutzer den nächsten Schritt macht und dann wieder verschwindet? Danke.
Haben Sie versucht, einen Boolean zu haben, der die Ausführung signalisiert? – Vale
Ich kann nicht für andere sprechen, aber ich würde gerne einen anständigen [mcve] sehen, bevor ich sage, was los ist. Bitte schauen Sie auf den Link. –
@Vale Yeah Ich versuchte auch die boolesche Signalisierung, das gleiche Ergebnis – AeroFighter76