XNA Keine Reaktion auf If-Anweisung

Hey,

ich habe vor kurzer Zeit mit XNA begonnen und mit einem Pong-Klon angefangen. Nun bin ich bei der Kollision des Balls mit den Paddles angekommen und stoße auf einen mir unerklärlichen Fehler (vllt bin ich auch einfach blind ^^).

Am linken Paddle(Paddle1) prallt der Ball wunderbar ab, am rechten(Paddle2) hingegen überhauptnicht. Das Programm geht zwar bis in die if-Anweisung, überspringt aber die beiden bool Werte. Wenn ich also nach den bool Werten zB ein Label ändere, wird dies sehr wohl getan.

Desweiteren funktioniert der Code, wenn ich nur einen Wert auf false setzte, nur bewegt sich der Ball dann überhaupt nicht mehr.

MfG dr0n3

Code für die PaddleKollision:
//////////////////////////////////////////////
//Paddle_Ball_Collision
if ((ball.ballposition.X paddle2_x) && (paddle2_y

Hallo!
Ich vermute mal, dass Du über die 4 Properties ol, or, ul und ur die Bewegungsrichtung des Balls realisieren willst und dabei jeweils genau eines der Properties „true“ sein soll und alle anderen „false“, korrekt?
Das ist äußerst ineffizient und schwer durchschaubar.
Wenn Du Deinen Code debuggst, wirst Du bspw. feststellen, dass im ersten „if (ball.ur == true)“ das ball.ul auf true gesetzt wird und er damit immer in das nächste „if“ reinläuft.

Du solltest die Bewegungsrichtung aber nicht so speichern.
Entweder als EIN Property, das vier verschiedene Werte annehmen kann (eine enum bietet sich dafür an), oder Du hast für x und y jeweils ein Bewegungsdelta, welches die Werte +1 oder -1 annehmen kann.
Um dann die Position des Balls zu bestimmen, musst Du in jeder Runde nur das aktuelle Delta auf die aktuelle Position draufaddieren.
Wenn der Ball an eine Wand oder ein Paddle kommt, brauchst Du bloß das Vorzeichen des jeweiligen Deltas umdrehen. Also bspw:

if (ball.y = SPIELFELDHOEHE)
 ball.dy = -ball.dy;

um mit 2 Zeilen den Ball oben und unten abprallen zu lassen.

Gruß,
Martin

Herzlichen Dank Martin,

habs jetzt per Bewegungsdelta realisiert.

MfG dr0n3

Beim nächsten senden von Code bitte die Mühe machen einzurücken. Das macht das analysieren des Code einfacher. Des Weiteren funktioniert der Debugger auch in XNA. Es gibt in dem moment zwar keine grafische Ausgabe, aber das Debuggen an sich geht.