C# else Bedingung funktioniert nicht?

...komplette Frage anzeigen

4 Antworten

Geh doch einmal mit einem Debugger durch und schaue, ob deine Bedingung überhaupt zutrifft. Zeichnerisch könntest du des Weiteren prüfen, ob die Bedingung in getesteten Fall überhaupt wahr werden kann.

Dein IF funktioniert aber der Blcok vom IF nicht? Das kann nicht sein ;) Dann ist wohl deine Bedingung falsch..

DarkDungeon 02.07.2017, 14:07

Also er erkennt die Kollision beim IF, also er führt die IF korrekt aus. Also angenommen ich setze im If Block eine bool collision = true; und im else zweig dann collision = false; dann setzt er bei mir die collision nur noch auf false, auch wenn ich mit dem Block kollidiere.

0
triopasi 02.07.2017, 14:10
@DarkDungeon

Dann ist wo anders was falsch, zeig doch mal deinen ganzen Code..

0

Nur ein Hinweis:

for (int a = 0; a < platform_list.Count; a++)

solltest Du in C# immer als

foreach (var platform in platform_list)

schreiben. Das vereinfacht die Schreiberei und die Übersichtlichkeit, weil aus

platform_list[a].X

platform.X 

wird.

Ansonsten wäre es hilfreich, Methoden in der Art "IsInRange" für die Vergleiche zu verwenden.

DarkDungeon 02.07.2017, 14:08

Danke für den Hinweis. Das mit dem "IsInRange" könnte ich mal ausprobieren.

0
regex9 06.08.2017, 19:07

(...) solltest Du in C# immer (...)

Nein, das kann man so nicht als Regel aufstellen. Es kommt darauf an, was man im Schleifenrumpf machen möchte. Die Iterationsvariable innerhalb von foreach ist bspw. read-only. Wenn man die einzelnen Listenelemente so also ändern möchte, ist diese Schleifenart ungeeignet.

0
Mikkey 06.08.2017, 22:24
@regex9

Das ist nur teilweise richtig. Sind die Elemente Wertetypen, hast Du Recht. Im Normalfall enthält der Container aber Klassen-Objekte und die sind nie Read-Only.

0

Meinst Du echt, dass diese Frage mit unformatiertem Code hier von jemandem beantwortet wird?

DarkDungeon 02.07.2017, 13:49

Hab eben die Änderung dafür abgeschickt, sorry ^^

0

Was möchtest Du wissen?