Eine Alternative zu dieser Abfrage ist die MODULO Operation. a MODULO b berechnet den Rest aus der Teilung von a / b, also dass was übrig bleibt wenn man a durch b teilt. Wenn du schreibst aktuelle ZEIT MODULO 40 dann kommt immer ein Wert kleiner 40 raus. Beispiel:
40 MODULO 40 = 0
41 MODULO 40 = 1
45 MODULO 40 = 5
18 MODULO 40 = 18
Man sieht sofort: Ist ein Wert größer als 40 so wird ihm solange 40 subtrahiert bis er kleiner als 40 ist. Ist er bereits kleiner als 40, so passiert nichts.
Die Modulo-Operation "setze zeit auf zeit MODULO 40" ist insofern praktischer als eine direkte Abfrage "wenn zeit=40 dann setze zeit auf 0", da sie robuster ist. Wenn die Zeit 40 ist, wird sie nach der Modulo-Operation 0. Soweit verhält sie sich genauso wie deine Abfrage. Ist die Zeit jedoch größer, so wird sie ebenfalls auf unter 40 gesetzt. Dies ermöglicht dir z.B. die Uhrzeit im Spiel vorzudrehen. Beispiel: Die Heldentruppe besucht ein Gasthaus und übernachtet dort. Du willst dass nach der Übernachtung 8 Stunden vergehen. Dies kannst du machen in dem du einfach die Zeit um, z.B. 25, erhöhst und danach Modulo 40 nimmst.
Von daher wäre mein Vorschlag:
Code:
Paralleler Prozess:
control variables zeit add 1
control variables zeit modulo 40
wait 800 double-frame