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,

vermutlich wird der Ball bis zur nächsten Kollisionsprüfung gar nicht oder nicht weit genug bewegt, sodass erneut eine Kollision festgestellt wird und die Richtung wieder geändert. Prüfe das doch mal.
Es macht sich vielleicht auch besser, vor dem Bewegen des Balls, zu überprüfen, ob die Zielposition erlaubt ist, ansonsten dann die Behandlung mit Richtungsänderung.
Übrigens ist es vielleicht eleganter, die Bewegungsrichtung des Balls über Enumerationen zu lösen, anstatt immer bool-Werte.
Also eine Enumeration mit ul, ur, ol, or. Und das als Typ für die Ballrichtung. Da kannst du auch vertikale Richtung und horizontale Richtung getrennt unterbringen.
Und ganz elegant wäre es noch, wenn du dich nicht prinzipiell auf die 4 Richtungen festlegst, sondern einen Richtungsvektor dafür nutzt.

Nico