Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

C/C++ Problem...

wlaner / 6 Antworten / Flachansicht Nickles

Hi,
also es geht um eine ganz normale if-else-Schleife,
allerdings muss es einen Fehler geben, weil das ganze nicht
so funktioniert wie ich will.

Der Code:

int yBallMoveFunc(int iActY)
{
    bool bMoveDown = TRUE;
      if(iActY >= rect.bottom)
      {
       iActY     = rect.bottom-1;
       bMoveDown = FALSE;
      }
      else
      {
       if(bMoveDown = FALSE)
       {iActY--;}
       else
       {iActY++;}
      }
    return iActY;
}


Das Problem:
Mit der Funktion wird die Y-Koordinate eines Kreises bestimmt,
die von einem Timer immer wieder erneuert wird.
Alles funktioniert wie geplant, bis bMoveDown gebraucht wird.
Ich denke es liegt an einer falschen Verschachtelung oder
an bMoveDown.
Der Ball sollte eigentlich beim berühren des unteren Randes wieder nach oben. Das macht er auch, aber dann gehts wieder runter, und wieder hoch, und runter, ...

Das kompilierte Programm
Der ganze Quellcode


Hoffe da kann mir jemand weiterhelfen.
Vielen Dank und frohes Fest ,-))

WLaner

bei Antwort benachrichtigen
mr.escape Borlander „Wobei das selbst mit noch seltsam wäre, da diese Bedingung nie eintreffen kann...“
Optionen
Wobei ...
Richtig, habe es nur sehr oberflächlich überflogen.

Solange "bMoveDown" nicht zu einer globalen oder wenigstens einer static variable gemacht wird, ist das rel. sinnfrei.

mr.escape
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
Re: C/C++ Problem... Borlander