locomarco
Commander
- Registriert
- Aug. 2009
- Beiträge
- 2.446
Ich habe folgenden Code um den Ball am Schläger abprallen zu lassen:
Das Problem ist das der Ball nicht immer abprallt.
Ball prallt rechts nicht ab -> prallt Links ab -> prallt rechts nicht ab -> prallt links nicht ab -> prallt rechts ab -> prallt links nicht ab -> prallt rechts nicht ab -> prallt links wieder ab und immer so weiter.
Vielleicht findet ja jemand den Fehler und hilft mir
Falls ihr den restlichen Code braucht, werd ich ihn Posten.
Grüße loco
EDIT: Habs selbst rausgefunden.
Hatte für die Controllersteuerung nicht int Schlaeger1Y sondern float Y1 benutzt und in dem Abschnitt nicht geändert.
Code:
public void BallCollisionUpdate()
{
Rectangle RectSchlaeger1, RectSchlaeger2, RectBall;
RectSchlaeger1 = new Rectangle(Schlaeger1X, Schlaeger1Y, Schlaeger1.Width, Schlaeger1.Height);
RectSchlaeger2 = new Rectangle(Schlaeger2X, Schlaeger2Y, Schlaeger2.Width, Schlaeger2.Height);
RectBall = new Rectangle(BallX, BallY, Ball.Width, Ball.Height);
if (RectBall.Left <= RectSchlaeger1.Right && BallY + Ball.Height / 2 >= RectSchlaeger1.Top && BallY + Ball.Height / 2 <= RectSchlaeger1.Bottom ||
RectBall.Right >= RectSchlaeger2.Left && BallY + Ball.Height / 2 >= RectSchlaeger2.Top && BallY + Ball.Height / 2 <= RectSchlaeger2.Bottom)
{
BallSpeedX *= -1;
BallSpeedY *= -1;
}
if (RectBall.Top <= 0 || RectBall.Bottom >= Height)
BallSpeedY *= -1;
if (RectBall.Left <= 0 || RectBall.Right >= Width)
BallSpeedX *= -1;
}
Das Problem ist das der Ball nicht immer abprallt.
Ball prallt rechts nicht ab -> prallt Links ab -> prallt rechts nicht ab -> prallt links nicht ab -> prallt rechts ab -> prallt links nicht ab -> prallt rechts nicht ab -> prallt links wieder ab und immer so weiter.
Vielleicht findet ja jemand den Fehler und hilft mir

Falls ihr den restlichen Code braucht, werd ich ihn Posten.
Grüße loco
EDIT: Habs selbst rausgefunden.
Hatte für die Controllersteuerung nicht int Schlaeger1Y sondern float Y1 benutzt und in dem Abschnitt nicht geändert.
Zuletzt bearbeitet: