Ich habe eine Klasse und darin habe ich eine Methode, die eine Schleife enthält. Ich möchte eine Anweisung milliseconds = 0
nur einmal an der Spitze ausführen können.Wie Wert von einer Anweisung nur einmal in Python erhalten
Allerdings, wenn ich den beigefügten Code ausführen, wird es auf 0 zurückgesetzt. Dann was ich will ist, so dass die Millisekunden mit einer Rate von 200 jedes Mal erhöht werden können, wenn durchläuft. Ich habe versucht, die milliseconds = 0
unter der Klasse oder außerhalb der Klasse und es funktioniert nicht. Was kann ich tun?
EDIT: meine neue Frage, wie kann ich es so machen, dass Python bis 5000 Millisekunden vor dem Fortschreiten zum nächsten Stück Code zählen kann.
class Flag():
def Flagrun(self):
flagactive = 'No'
milliseconds = 0
flaggen = str(randint(1,4))
milliseconds += 200
print(milliseconds)
if milliseconds > 1000:
if flaggen == '1':
window.blit(flag, (58,89))
collisiondet()
flagactive = 'Yes'
milliseconds = 0
elif flaggen == '2':
window.blit(flag, (464,82))
collisiondet()
flagactive = 'Yes'
milliseconds = 0
elif flaggen == '3':
window.blit(flag, (343,215))
collisiondet()
flagactive = 'Yes'
milliseconds = 0
elif flaggen == '4':
window.blit(flag, (66,535))
collisiondet()
flagactive = 'Yes'
milliseconds = 0
Sollte Ihr 'if' Aussagen innerhalb der Funktion sein? Innerhalb von 'flagrun' erzeugt' Millisekunden = 0' eine lokale Variable. – cdarke
Was hast du getan, um es "unter die Klasse oder außerhalb der Klasse" zu bringen, das nicht funktioniert hat? – TWReever
Wo ist die Schleife? Scheint der Code ist unvollständig. Und wie @cdarke sagt, setzen Sie Millisekunden in die Funktion, also ist es eine lokale Variable. – Flickerlight