diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-10-02 14:52:30 +0200 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-10-08 21:03:28 +0200 |
commit | 7de0b165f196cb0c1f983b6d2ab26ef9791a2d36 (patch) | |
tree | 86f55c00b3fe17dae950351f3c33d35e6abd5a4d /src/animatedsprite.h | |
parent | 59a7d5c58f8b3af21b3e19d4e78f5653bf011bfb (diff) | |
download | mana-7de0b165f196cb0c1f983b6d2ab26ef9791a2d36.tar.gz mana-7de0b165f196cb0c1f983b6d2ab26ef9791a2d36.tar.bz2 mana-7de0b165f196cb0c1f983b6d2ab26ef9791a2d36.tar.xz mana-7de0b165f196cb0c1f983b6d2ab26ef9791a2d36.zip |
Do a single logic update each frame
The logic update now uses Time::deltaTimeMs() where needed to make it
framerate-independent. This means there will no longer be multiple logic
calls per frame (as was usually the case with logic ticking at 100 fps
whereas the game would generally run at 60 fps).
At the same time, the game can be more precise at higher framerates and
should now run smoother at 144 Hz, for example. Previously the game would
sometimes skip logic ticks at that rate.
This change affects:
* Updating of animations
* Being movement speed
* More moving of manual time variables to Timer
Notoriously, the particle system still does 100 ticks/second.
Diffstat (limited to 'src/animatedsprite.h')
-rw-r--r-- | src/animatedsprite.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/animatedsprite.h b/src/animatedsprite.h index 05c73ddd..51544a48 100644 --- a/src/animatedsprite.h +++ b/src/animatedsprite.h @@ -79,10 +79,9 @@ class AnimatedSprite final : public Sprite int getDuration() const override; private: - bool updateCurrentAnimation(unsigned int dt); + bool updateCurrentAnimation(int dt); SpriteDirection mDirection = DIRECTION_DOWN; /**< The sprite direction. */ - int mLastTime = 0; /**< The last time update was called. */ int mFrameIndex = 0; /**< The index of the current frame. */ int mFrameTime = 0; /**< The time since start of frame. */ |