ich bekomme hier seltsames Verhalten.
Ich beschreibe mal was ich versuche zu erreichen:
Ich möchte ein Objekt auf den Bildschirm ständig in Bewegung halten.
Dazu generiere ich zufällige Zielpositionen (mObject.mNewTarget) und versuche mich dann eben zu diesen zu bewegen.
Sollte das Objekt das Zeil erreicht haben, wird ein neues Ziel generiert.
So sollte es zumindest theoretisch ablaufen, nur macht es das in der Praxis nicht und ich habe keine Ahnung wieso.
Es erreicht irgendwie NIE das Ziel...
Ich verstehe es nicht wieso.
Hier mal der Code:
Code: Alles auswählen
void Game::updateGame()
{
sf::Vector2f dir = mObject.mNewTarget - mObject.mPosition;
float lenDir = sqrt((dir.x*dir.x) + (dir.y*dir.y));
if (lenDir < 5.0)
{
mObject.mNewTarget = generateNewTargetForObject();
}
else
{
dir.x = dir.x / lenDir;
dir.y = dir.y / lenDir;
mObject.mPosition.x = mObject.mPosition.x + (dir.x*speed*mObject.mClock.getElapsedTime().asMilliseconds());
mObject.mPosition.y = mObject.mPosition.y + (dir.y*speed*mObject.mClock.getElapsedTime().asMilliseconds());
}
}
Gruß