Wenn gameObject.paint(g);
viele Zeichenaufrufe beinhaltet, würde wahrscheinlich die Verzweigung (Überprüfung) mehr Arbeit als es kostet sparen. Wenn es nur wie ein Zeichenaufruf ist, ein Sprite zu zeichnen, würde Ihre Bibliothek eine solche Überprüfung bereits durchführen, um Pufferüberläufe zu vermeiden, und Ihre wäre überflüssig.
Das heißt, wenn Sie anfangen, Leistungsprobleme hier zu begegnen, dann empfehle ich, eine Art von Datenstruktur zu verwenden. Ein einfacher ist ein Gitter, wie so:
Wenn Ihre Elemente verschieben, entfernen Sie sie aus den Gitterzellen die sie besetzen, und legen Sie sie auf die neue (n) sie belegen. Das sollte nur einige wenige Ganzzahlen manipulieren, wenn Sie dies effizient implementieren.
Wenn Sie dann Elemente auf dem Bildschirm zeichnen möchten, zeichnen Sie nur die Elemente in den Rasterzellen, die sich überlappen. Das verhindert, dass Sie jedes einzelne Element in der Spielwelt durchlaufen. Dies ist auch praktisch, wenn Sie eine beschleunigte Kollisionserkennung benötigen.
Ein Quad-Tree ist zwar eine etwas teurere Alternative, bietet aber eine bessere Suchqualität, wenn die Elemente in Ihrem Spiel nur spärlich verteilt sind.