kugel mit maus rollen lassen
-
Du musst bloss noch jeden Frame den Speed der Kugel reduzieren, am besten mit
SpeedReductionFactor = 0.01f; Kugel.Speed *= SpeedReductionFactor;
Dann dürfte die Kugel auch flüssig auslaufen.
-
Wie hier? Was ist da das Problem?
Bye, TGGC (Just think about it)
-
godlikebot schrieb:
Du musst bloss noch jeden Frame den Speed der Kugel reduzieren, am besten mit
SpeedReductionFactor = 0.01f; Kugel.Speed *= SpeedReductionFactor;
Dann dürfte die Kugel auch flüssig auslaufen.
Mit einem Wert von 0.01 verliert die Kugel in jedem Frame aber 99% ihrer Geschwindigkeit. Das ist doch viel zu viel... außerdem funktioniert dieser Ansatz nicht, wenn die Frames unterschiedlich lange dauern.
So ginge es:
const float SpeedReductionFactor = 0.1f; Kugel.Speed *= powf(SpeedReductionFactor, FrameDurationInSeconds);
-
also danke für eure antworten,
ich habe immernoch das problem, die kugel überhaupt zu bewegen. weil ich versteh das mit den vektoren nicht soo ganz. kann mir einer ein bsp dazu geben?
-
@TomasRiker:
Ja, an unterschiedliche Frame-raten hab ich nicht gedacht, aber der 0.01f Wert war nicht ganz ernst gemeint. Er muss sich halt den Wert raussuchen, der am besten passt.
-
@nuclearspider:
Deine Kugel braucht die Eigenschaften position, richtung und Geschwindigkeit.class Kugel { point2d position; vec2d direction; float speed; };
Den Richtungsvektor kannst du so rauskriegen (Maus und Kugel müssen dabei aber das gleiche Koordinatensystem benutzen):
vec2d NewVector = Kugel.position - MousePos; Kugel.direction = Normalize(NewVector); // NewVector wird nicht verändert, es wird nur eine normalisierte(???) Kopie zurückgegeben Kugel.speed += GetLength(NewVector) * ACCELERATION_FACTOR;// ACCELERATION_FACTOR ist ein Wert unter 1
-
Danke,
aber ich weiß immernoch nicht so ganz, iwe ich das verwenden soll. welche dateien muss ich includieren??? (damit ich Normalize() oÄ verwenden kann)und noch was:
zu framerate etc. :
Ich mache das ganze im BCB, und ich verwende kein DirectDraw oder ähnliches (es wäre besser, wenn ich DDraw verwenden würde, oder?).
und da ich im moment einge ganz nochrmal form habe habe ich keine framerate.
-
nuclearspider schrieb:
welche dateien muss ich includieren??? (damit ich Normalize() oÄ verwenden kann)
LOL.
Mal von "selber machen" gehört.
Bye, TGGC (Just think about it)
-
godlikebot schrieb:
@nuclearspider:
Deine Kugel braucht die Eigenschaften position, richtung und Geschwindigkeit.class Kugel { point2d position; vec2d direction; float speed; };
Wieso eigentlich noch speed? Die steckt doch schon im Betrag von direction drinnen.
nuclearspider schrieb:
und da ich im moment einge ganz nochrmal form habe habe ich keine framerate
Öhm... Was hat das damit zu tun? Jedes spielt hat ne gewisse Framerate, oder willst du nur ein einziges Mal zeichnen?
-
interpreter schrieb:
Wieso eigentlich noch speed? Die steckt doch schon im Betrag von direction drinnen.
Hmmm, stimmt
-
Öhm... Was hat das damit zu tun? Jedes spielt hat ne gewisse Framerate, oder willst du nur ein einziges Mal zeichnen?
ja bis jetzt habe ich es so, das das bild neu gezeichnet weird, wenn man die maus (und damit die kugel) bewegt.