Beschleunigung in C++
-
0.1 statt 0,1
-
hab das koma rausgenommen, dennoch noch nicht wie es soll....
geht mir ja nur um die speed berechnung...
könnte mir jemand von euch sagen/zeigen wo der fehler liegt?
-
"dennoch nicht wie es soll" ist natürlich eine viel bessere Fehlerbeschreibung als "ich seh den Fehler nicht". Ich verstehe nicht, wieso dir trotzdem niemand helfen kann.
-
na weil es keine fehlermeldung gibt und ich lediglich fragte ob mir jemand bei dieser beschleunigungs und abbremsgeschichte helfen kann.
ich versuch es selber nochmal...aber heut nimmer...
dachte hier kann mir jemand helfen
-
Dein Code sieht richtig aus. Bis vielleicht aufs uninitialisierte
float speed;
m aber das haste bestimmt nicht so da stehen.
-
doch steht so da, hatte es aber auch mit 0 initialisiert, aber funktionierte dennoch nicht wie gewünscht.
-
-> Was ist gewünscht?
-> Was genau passiert?
So langsam sollte doch Mal angekommen sein, dass Du etwas expliziter werden musst.
-
Beschreibe mal, was tatsächlich passiert, und was Du eigentlich erwarten würdest.
-
naja aber was er da macht hat auch nichts mit beshcleunigung zu tun sondern mit der geschwindigkeit
velocity <---> acceleration
-
Wenn Cursortaste nach oben gedrückt wird, soll sich speed erhöhen.
Wenn die Taste losgelassen wird, aber nicht sofort auf 0 runter sondern eben langsam sinken im Wert.
Das gleiche bei Cursortaste nach unten gedrückt wird.Eben Beschleunigung und Abbremsen, wobei speed der Geschwindigkeit entspricht.
-
Keydown und Keyup werden nur einmalig ausgelöst. Dein Code klappt nur, wenn sie dauerhaft so laufen. Mach's einfach so:
bool keyUpDown = false; // als Attribut der Klasse if(xKeyDown(KEY_UP)) keyUpDown = true; if(xKeyUp(KEY_UP)) keyUpDown = false; if(keyUpDown) speed += 0.1; else { speed -= 0.1; if(speed < 0) spped = 0.; } // Analog für KEY_DOWN, wobei ich mich frage, was bei gleichzeitigem Drücken geschehen soll