Ich habe mal wieder ein Problem.
Es geht dieses mal um Performance sparen, auch wenn es nur ganz wenig ist.
Darstellen:
Es gibt X "Checkpoints" die jeweils eine ID von 0 bis X-1 haben.
Es gibt Y "Spieler" die jeweils die aktuelle ID des zuletzt durchlaufenen Checkpoints gespeichert haben.
Problem: Ich muss mehrmals pro Sekunde alle Spieler durchlaufen und alle Checkpoints durchlaufen (eine Funktion der Klasse aufrufen), jedoch kann ich mir alle Checkpoints sparen, die ich bereits durchlaufen habe.
Beispiel:
Spieler A hat bereits 3 Checkpoints (also ID 0, 1 und 2) durchlaufen, also brauch er nur noch die Checkpoints 4 bis 6 durchlaufen (also ID 3, 4 und 5).
Wie kriege ich es nun hin, dass ich eine for-Schleife bekomme, die folgendem Pseudocode entspricht?
Code: Alles auswählen
for player in players:
for checkpoint in checkpoints[ab checkpoint mit id größer als player.lastcheckpoint]:
checkpoint.callAnything()
Chris