Alles anzeigenUnd genau das ist das Problem, weswegen sogar viel AAA-Titel versagen. Niemand macht sich Gedanken über die Codeoptimierung. Nun mag es zwar ein sehr selten vorkommendes Beispiel gewesen sein, wo ein Programmablauf oft in eine leere Else-Verzweigung schauen muss, immerhin gibt es ja noch Events, Eventdispatcher usw., über die man vielleicht solche Situationen auch lösen könnte. Aber, stell dir mal vor, du hast ein Spiel, welches mit 120 FPS, also 120 Bildern pro Sekunde, laufen soll. Und jetzt läuft es aus irgendeinem Grund mal ganz blöd und er schaut auch 120 Mal pro Sekunde in dieses leere Else. Immerhin werden die meisten solche Abfragen hinter ein Tick-Event setzen, welches wirklich oft aufgerufen wird. Doch, dann kannst du die Performance verbessern, wenn du das vermeidest. Nur, weil heutige Rechner scheinbar enorme Rechenleistungen haben im Vergleich zu einem 80386er-Prozessor und auch mehr RAM haben, als die damaligen 640 KB, gibt es da keine Ausrede sich nicht zumindest darüber Gedanken zu machen und auch das neben hohen Polygonzahlen nach Möglichkeit zu vermeiden.
CodeAlles anzeigenDas sind logische Operatoren. Auch in anderen Sprachen benutzt du ja IF auch in Verbindung mit logischen Operatoren. es sieht nur unauffälliger aus. Zum Beispiel hast du eine normale IF-Abfrage if (i == 20) { tu das eine; } else { tu etwas anderes; }
Mit dem logischen Not-Operator sieht es dann halt so aus
Im zweiten Beispiel hast du die IF- und Else-Zweige quasi umgekehrt.
Dann das Ganze mit AND
Hier müssen beide Bedingungen erfüllt sein, sonst landet die Abfrage im Else-Zweig
Und das Ganze noch einmal mit ODER
In diesem Fall reicht es halt, wenn einer oder beide wahr sind. Nur wenn beide nicht erfüllt sind, landest du im Else-Zweig.
Und so funktioniert es auch in der Engine.
Das normale IF
Zwei Varianten mit der Verneinung !=
Beispiel mit AND
Beispiel mit OR
Im Wiki auf dieser Seite habe ich die logischen Operatoren übrigens mal eingefügt, da kannst du dir genau anschauen, welche Wirkung diese haben.
Ich habe nochmal zwei Bilder eingefügt, die den Bereich des jeweiligen Codes darstellen und auch zeigen, dass das eigentliche IF vor dem Branch stattfindet.
Damit werde ich die volle Macht der Computer aufnehmen und die Welt befehlen. Du hast mir zu viel erzählt, besser wärs ich wüsste das nicht.