Originally Posted By: SomebodyNew
Diese Herangehensweise habe ich öfters im Forum gesehen. Jedes Mal denke ich mir, braucht das nicht enorm viel Rechenpower???
Mal angenommen es würden 500 Entities im Level rumstehen.
Sagen wir 30 davon sind "potentielle Ziele"
Und das Level geht von -50.000 bis +50.000 Quants.

Dann müsste der Rechner 500 If-Abfragen prüfen.
Und 30 mal x2-x1, y2-y1, z2-z1 für im Schnitt 5stellige Dezimal-Zahlen rechnen.
Sowie gegebenenfalls die "neue nächste entity" abspeichern (was ja bis zu 30 mal der Fall sein kann).


Nein, die Funktion geht durch den Array von Entities den die Engine hat. Das ganze sieht ungefähr so aus (aus meiner Engine)
Code:
- (vdTMXLayer *)nextLayer:(vdTMXLayer *)_layer {
	if(contLayer > 0)
	{
		if(!_layer)
			return container[0];
		
		for(int i=0; i<contLayer; i++)
		{
			if(container[i] == _layer)
			{
				if(i < contLayer-1)
				{
					return container[i+1];
				} else {
					return NULL;
				}
			}
		}
	}
	return NULL;
}




Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com